Loading atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/CategoryEventHandlerTest.java +159 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ package es.redmic.test.atlasview.integration.handler; */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import java.util.Map; Loading Loading @@ -59,6 +60,7 @@ import es.redmic.atlaslib.events.category.create.CreateCategoryFailedEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryConfirmedEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryFailedEvent; import es.redmic.atlaslib.events.category.fail.CategoryRollbackEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryConfirmedEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryFailedEvent; Loading Loading @@ -288,6 +290,153 @@ public class CategoryEventHandlerTest extends DocumentationViewBaseTest { repository.delete(category.getId()); } // Rollback @Test(expected = ItemNotFoundException.class) public void sendCategoryRollbackEvent_PublishCreateCategoryFailedEvent_IfFailEventTypeIsCreate() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.CREATE_FAILED); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotCategory.getId()).get_source(); } @Test(expected = ItemNotFoundException.class) public void sendCategoryRollbackEvent_PublishCreateCategoryFailedEventAndDoRollback_IfFailEventTypeIsCreateAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.CREATE_FAILED); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotCategory.getId()).get_source(); } @Test public void sendCategoryRollbackEvent_PublishUpdateCategoryFailedEvent_IfFailEventTypeIsUpdate() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.UPDATE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.UPDATE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishUpdateCategoryFailedEventAndDoRollback_IfFailEventTypeIsUpdateAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.UPDATE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotCategory.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotCategory); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.UPDATE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()), newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishDeleteCategoryFailedEvent_IfFailEventTypeIsDelete() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.DELETE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.DELETE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishDeleteCategoryFailedEventAndDoRollback_IfFailEventTypeIsDeleteAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.DELETE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.DELETE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @KafkaHandler public void createTypeCategoryConfirmed(CreateCategoryConfirmedEvent createCategoryConfirmedEvent) { Loading Loading @@ -379,4 +528,14 @@ public class CategoryEventHandlerTest extends DocumentationViewBaseTest { deletedEvent.setUserId(USER_ID); return deletedEvent; } public CategoryRollbackEvent getCategoryRollbackEvent(String failEventType) { CategoryRollbackEvent event = new CategoryRollbackEvent().buildFrom(getCreateCategoryEvent()); event.setFailEventType(failEventType); event.setLastSnapshotItem(getCategory()); return event; } } atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/LayerEventHandlerTest.java +246 −9 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ package es.redmic.test.atlasview.integration.handler; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -65,9 +66,11 @@ import es.redmic.atlaslib.events.layer.create.CreateLayerFailedEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerFailedEvent; import es.redmic.atlaslib.events.layer.fail.LayerRollbackEvent; import es.redmic.atlaslib.events.layer.partialupdate.themeinspire.UpdateThemeInspireInLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerFailedEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerFailedEvent; Loading Loading @@ -421,6 +424,214 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { assertTrue(true); } // Rollback @Test(expected = ItemNotFoundException.class) public void sendLayerRollbackEvent_PublishCreateLayerFailedEvent_IfFailEventTypeIsCreate() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.CREATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); } @Test(expected = ItemNotFoundException.class) public void sendLayerRollbackEvent_PublishCreateLayerFailedEventAndDoRollback_IfFailEventTypeIsCreateAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.CREATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); } @Test public void sendLayerRollbackEvent_PublishUpdateLayerFailedEvent_IfFailEventTypeIsUpdate() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.UPDATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.UPDATE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishUpdateLayerFailedEventAndDoRollback_IfFailEventTypeIsUpdateAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.UPDATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotLayer.setUpdated(lastSnapshotLayer.getUpdated().plusDays(1)); lastSnapshotLayer.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotLayer); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.UPDATE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()), newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishRefreshLayerFailedEvent_IfFailEventTypeIsRefresh() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.REFRESH); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.REFRESH_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishRefreshLayerFailedEventAndDoRollback_IfFailEventTypeIsRefreshAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.REFRESH); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotLayer.setUpdated(lastSnapshotLayer.getUpdated().plusDays(1)); lastSnapshotLayer.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotLayer); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.REFRESH_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()), newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishDeleteLayerFailedEvent_IfFailEventTypeIsDelete() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.DELETE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.DELETE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishDeleteLayerFailedEventAndDoRollback_IfFailEventTypeIsDeleteAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.DELETE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.DELETE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @KafkaHandler public void createTypeLayerConfirmed(CreateLayerConfirmedEvent createLayerConfirmedEvent) { Loading @@ -445,6 +656,12 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { blockingQueue.offer(updateLayerFailedEvent); } @KafkaHandler public void refreshLayerFailed(RefreshLayerFailedEvent refreshLayerFailedEvent) { blockingQueue.offer(refreshLayerFailedEvent); } @KafkaHandler public void deleteLayerConfirmed(DeleteLayerConfirmedEvent deleteLayerConfirmedEvent) { Loading @@ -468,12 +685,17 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { } protected LayerDTO getLayer() throws IOException { protected LayerDTO getLayer() { try { return (LayerDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layer.json", LayerDTO.class); } catch (IOException e) { e.printStackTrace(); return null; } } protected CreateLayerEvent getCreateLayerEvent() throws IOException { protected CreateLayerEvent getCreateLayerEvent() { CreateLayerEvent createdEvent = new CreateLayerEvent(); createdEvent.setId(UUID.randomUUID().toString()); Loading @@ -487,7 +709,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return createdEvent; } protected UpdateLayerEvent getUpdateLayerEvent() throws IOException { protected UpdateLayerEvent getUpdateLayerEvent() { UpdateLayerEvent updatedEvent = new UpdateLayerEvent(); updatedEvent.setId(UUID.randomUUID().toString()); Loading @@ -503,7 +725,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return updatedEvent; } protected UpdateThemeInspireInLayerEvent getUpdateThemeInspireInLayerEvent() throws IOException { protected UpdateThemeInspireInLayerEvent getUpdateThemeInspireInLayerEvent() { UpdateThemeInspireInLayerEvent event = new UpdateThemeInspireInLayerEvent().buildFrom(getUpdateLayerEvent()); Loading @@ -518,15 +740,20 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return event; } protected RefreshLayerEvent getRefreshLayerEvent() throws IOException { protected RefreshLayerEvent getRefreshLayerEvent() { RefreshLayerEvent refreshEvent = new RefreshLayerEvent(); refreshEvent.setId(UUID.randomUUID().toString()); refreshEvent.setDate(DateTime.now()); refreshEvent.setType(LayerEventTypes.UPDATE); LayerWMSDTO layer = (LayerWMSDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layerWMS.json", LayerWMSDTO.class); LayerWMSDTO layer; try { layer = (LayerWMSDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layerWMS.json", LayerWMSDTO.class); } catch (IOException e) { e.printStackTrace(); return null; } layer.setName(layer.getName() + "2"); refreshEvent.setLayer(layer); refreshEvent.setAggregateId(refreshEvent.getLayer().getId()); Loading @@ -537,7 +764,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return refreshEvent; } protected DeleteLayerEvent getDeleteLayerEvent() throws IOException { protected DeleteLayerEvent getDeleteLayerEvent() { DeleteLayerEvent deletedEvent = new DeleteLayerEvent(); deletedEvent.setId(UUID.randomUUID().toString()); Loading @@ -549,4 +776,14 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { deletedEvent.setUserId(USER_ID); return deletedEvent; } public LayerRollbackEvent getLayerRollbackEvent(String failEventType) { LayerRollbackEvent event = new LayerRollbackEvent().buildFrom(getCreateLayerEvent()); event.setFailEventType(failEventType); event.setLastSnapshotItem(getLayer()); return event; } } atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/ThemeInspireEventHandlerTest.java +171 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/CategoryEventHandlerTest.java +159 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ package es.redmic.test.atlasview.integration.handler; */ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import java.util.Map; Loading Loading @@ -59,6 +60,7 @@ import es.redmic.atlaslib.events.category.create.CreateCategoryFailedEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryConfirmedEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryEvent; import es.redmic.atlaslib.events.category.delete.DeleteCategoryFailedEvent; import es.redmic.atlaslib.events.category.fail.CategoryRollbackEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryConfirmedEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryEvent; import es.redmic.atlaslib.events.category.update.UpdateCategoryFailedEvent; Loading Loading @@ -288,6 +290,153 @@ public class CategoryEventHandlerTest extends DocumentationViewBaseTest { repository.delete(category.getId()); } // Rollback @Test(expected = ItemNotFoundException.class) public void sendCategoryRollbackEvent_PublishCreateCategoryFailedEvent_IfFailEventTypeIsCreate() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.CREATE_FAILED); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotCategory.getId()).get_source(); } @Test(expected = ItemNotFoundException.class) public void sendCategoryRollbackEvent_PublishCreateCategoryFailedEventAndDoRollback_IfFailEventTypeIsCreateAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.CREATE_FAILED); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotCategory.getId()).get_source(); } @Test public void sendCategoryRollbackEvent_PublishUpdateCategoryFailedEvent_IfFailEventTypeIsUpdate() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.UPDATE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.UPDATE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishUpdateCategoryFailedEventAndDoRollback_IfFailEventTypeIsUpdateAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.UPDATE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotCategory.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotCategory); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.UPDATE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()), newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishDeleteCategoryFailedEvent_IfFailEventTypeIsDelete() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.DELETE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotCategory); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.DELETE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @Test public void sendCategoryRollbackEvent_PublishDeleteCategoryFailedEventAndDoRollback_IfFailEventTypeIsDeleteAndLastSnapshotItemIsDifferent() throws Exception { CategoryRollbackEvent event = getCategoryRollbackEvent(CategoryEventTypes.DELETE); Category lastSnapshotCategory = Mappers.getMapper(CategoryESMapper.class).map(event.getLastSnapshotItem()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(CATEGORY_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(CategoryEventTypes.DELETE_FAILED, confirm.getType()); Category newCategory = (Category) repository.findById(lastSnapshotCategory.getId()).get_source(); assertEquals(lastSnapshotCategory, newCategory); repository.delete(lastSnapshotCategory.getId()); } @KafkaHandler public void createTypeCategoryConfirmed(CreateCategoryConfirmedEvent createCategoryConfirmedEvent) { Loading Loading @@ -379,4 +528,14 @@ public class CategoryEventHandlerTest extends DocumentationViewBaseTest { deletedEvent.setUserId(USER_ID); return deletedEvent; } public CategoryRollbackEvent getCategoryRollbackEvent(String failEventType) { CategoryRollbackEvent event = new CategoryRollbackEvent().buildFrom(getCreateCategoryEvent()); event.setFailEventType(failEventType); event.setLastSnapshotItem(getCategory()); return event; } }
atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/LayerEventHandlerTest.java +246 −9 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ package es.redmic.test.atlasview.integration.handler; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; Loading Loading @@ -65,9 +66,11 @@ import es.redmic.atlaslib.events.layer.create.CreateLayerFailedEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerEvent; import es.redmic.atlaslib.events.layer.delete.DeleteLayerFailedEvent; import es.redmic.atlaslib.events.layer.fail.LayerRollbackEvent; import es.redmic.atlaslib.events.layer.partialupdate.themeinspire.UpdateThemeInspireInLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerEvent; import es.redmic.atlaslib.events.layer.refresh.RefreshLayerFailedEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerConfirmedEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerEvent; import es.redmic.atlaslib.events.layer.update.UpdateLayerFailedEvent; Loading Loading @@ -421,6 +424,214 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { assertTrue(true); } // Rollback @Test(expected = ItemNotFoundException.class) public void sendLayerRollbackEvent_PublishCreateLayerFailedEvent_IfFailEventTypeIsCreate() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.CREATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); } @Test(expected = ItemNotFoundException.class) public void sendLayerRollbackEvent_PublishCreateLayerFailedEventAndDoRollback_IfFailEventTypeIsCreateAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.CREATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); event.setLastSnapshotItem(null); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.CREATE_FAILED, confirm.getType()); repository.findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); } @Test public void sendLayerRollbackEvent_PublishUpdateLayerFailedEvent_IfFailEventTypeIsUpdate() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.UPDATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.UPDATE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishUpdateLayerFailedEventAndDoRollback_IfFailEventTypeIsUpdateAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.UPDATE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotLayer.setUpdated(lastSnapshotLayer.getUpdated().plusDays(1)); lastSnapshotLayer.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotLayer); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.UPDATE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()), newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishRefreshLayerFailedEvent_IfFailEventTypeIsRefresh() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.REFRESH); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.REFRESH_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishRefreshLayerFailedEventAndDoRollback_IfFailEventTypeIsRefreshAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.REFRESH); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); lastSnapshotLayer.setUpdated(lastSnapshotLayer.getUpdated().plusDays(1)); lastSnapshotLayer.setName("other"); assertNotEquals(event.getLastSnapshotItem(), lastSnapshotLayer); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.REFRESH_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()), newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishDeleteLayerFailedEvent_IfFailEventTypeIsDelete() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.DELETE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); repository.save(lastSnapshotLayer, lastSnapshotLayer.getJoinIndex().getParent()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.DELETE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @Test public void sendLayerRollbackEvent_PublishDeleteLayerFailedEventAndDoRollback_IfFailEventTypeIsDeleteAndLastSnapshotItemIsDifferent() throws Exception { LayerRollbackEvent event = getLayerRollbackEvent(LayerEventTypes.DELETE); Layer lastSnapshotLayer = Mappers.getMapper(LayerESMapper.class).map(event.getLastSnapshotItem()); ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC, event.getAggregateId(), event); future.addCallback(new SendListener()); Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS); assertNotNull(confirm); assertEquals(LayerEventTypes.DELETE_FAILED, confirm.getType()); Layer newLayer = (Layer) repository .findById(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()).get_source(); assertEquals(lastSnapshotLayer, newLayer); repository.delete(lastSnapshotLayer.getId(), lastSnapshotLayer.getJoinIndex().getParent()); } @KafkaHandler public void createTypeLayerConfirmed(CreateLayerConfirmedEvent createLayerConfirmedEvent) { Loading @@ -445,6 +656,12 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { blockingQueue.offer(updateLayerFailedEvent); } @KafkaHandler public void refreshLayerFailed(RefreshLayerFailedEvent refreshLayerFailedEvent) { blockingQueue.offer(refreshLayerFailedEvent); } @KafkaHandler public void deleteLayerConfirmed(DeleteLayerConfirmedEvent deleteLayerConfirmedEvent) { Loading @@ -468,12 +685,17 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { } protected LayerDTO getLayer() throws IOException { protected LayerDTO getLayer() { try { return (LayerDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layer.json", LayerDTO.class); } catch (IOException e) { e.printStackTrace(); return null; } } protected CreateLayerEvent getCreateLayerEvent() throws IOException { protected CreateLayerEvent getCreateLayerEvent() { CreateLayerEvent createdEvent = new CreateLayerEvent(); createdEvent.setId(UUID.randomUUID().toString()); Loading @@ -487,7 +709,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return createdEvent; } protected UpdateLayerEvent getUpdateLayerEvent() throws IOException { protected UpdateLayerEvent getUpdateLayerEvent() { UpdateLayerEvent updatedEvent = new UpdateLayerEvent(); updatedEvent.setId(UUID.randomUUID().toString()); Loading @@ -503,7 +725,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return updatedEvent; } protected UpdateThemeInspireInLayerEvent getUpdateThemeInspireInLayerEvent() throws IOException { protected UpdateThemeInspireInLayerEvent getUpdateThemeInspireInLayerEvent() { UpdateThemeInspireInLayerEvent event = new UpdateThemeInspireInLayerEvent().buildFrom(getUpdateLayerEvent()); Loading @@ -518,15 +740,20 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return event; } protected RefreshLayerEvent getRefreshLayerEvent() throws IOException { protected RefreshLayerEvent getRefreshLayerEvent() { RefreshLayerEvent refreshEvent = new RefreshLayerEvent(); refreshEvent.setId(UUID.randomUUID().toString()); refreshEvent.setDate(DateTime.now()); refreshEvent.setType(LayerEventTypes.UPDATE); LayerWMSDTO layer = (LayerWMSDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layerWMS.json", LayerWMSDTO.class); LayerWMSDTO layer; try { layer = (LayerWMSDTO) JsonToBeanTestUtil.getBean("/data/dto/layer/layerWMS.json", LayerWMSDTO.class); } catch (IOException e) { e.printStackTrace(); return null; } layer.setName(layer.getName() + "2"); refreshEvent.setLayer(layer); refreshEvent.setAggregateId(refreshEvent.getLayer().getId()); Loading @@ -537,7 +764,7 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { return refreshEvent; } protected DeleteLayerEvent getDeleteLayerEvent() throws IOException { protected DeleteLayerEvent getDeleteLayerEvent() { DeleteLayerEvent deletedEvent = new DeleteLayerEvent(); deletedEvent.setId(UUID.randomUUID().toString()); Loading @@ -549,4 +776,14 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest { deletedEvent.setUserId(USER_ID); return deletedEvent; } public LayerRollbackEvent getLayerRollbackEvent(String failEventType) { LayerRollbackEvent event = new LayerRollbackEvent().buildFrom(getCreateLayerEvent()); event.setFailEventType(failEventType); event.setLastSnapshotItem(getLayer()); return event; } }
atlas-view/src/test/java/es/redmic/test/atlasview/integration/handler/ThemeInspireEventHandlerTest.java +171 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes