Commit 7ffeae42 authored by Noel Alonso's avatar Noel Alonso
Browse files

Cambia evento de confirmación + test de postupdate

parent 29bfca8d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import es.redmic.atlaslib.events.layer.create.CreateLayerEvent;
import es.redmic.atlaslib.events.layer.delete.DeleteLayerEvent;
import es.redmic.atlaslib.events.layer.partialupdate.themeinspire.UpdateThemeInspireInLayerEvent;
import es.redmic.atlaslib.events.layer.refresh.RefreshLayerEvent;
import es.redmic.atlaslib.events.layer.update.UpdateLayerConfirmedEvent;
import es.redmic.atlaslib.events.layer.update.UpdateLayerEvent;
import es.redmic.atlasview.mapper.layer.LayerESMapper;
import es.redmic.atlasview.mapper.layer.LayerWMSESMapper;
@@ -171,7 +172,7 @@ public class LayerController extends DataController<Layer, LayerDTO, GeoDataQuer
		}

		if (result.isSuccess()) {
			publishConfirmedEvent(new UpdateThemeInspireInLayerEvent().buildFrom(event), layer_topic);
			publishConfirmedEvent(new UpdateLayerConfirmedEvent().buildFrom(event), layer_topic);
		} else {
			publishFailedEvent(LayerEventFactory.getEvent(event, LayerEventTypes.UPDATE_FAILED,
					result.getExeptionType(), result.getExceptionArguments()), layer_topic);
+46 −1
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ 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.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.update.UpdateLayerConfirmedEvent;
@@ -355,6 +356,36 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest {
		assertNotNull(arguments.get("urlSource"));
	}

	@Test
	public void sendUpdateThemeInspireInLayerEvent_UpdateItem_IfEventIsOk() throws Exception {

		UpdateLayerEvent event = getUpdateLayerEvent();

		repository.save(Mappers.getMapper(LayerESMapper.class).map(event.getLayer()),
				event.getLayer().getParent().getId());

		UpdateThemeInspireInLayerEvent updateEvent = getUpdateThemeInspireInLayerEvent();

		ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(LAYER_TOPIC,
				updateEvent.getAggregateId(), updateEvent);
		future.addCallback(new SendListener());

		Event confirm = (Event) blockingQueue.poll(50, TimeUnit.SECONDS);

		DataHitWrapper<?> item = repository.findById(event.getAggregateId(), event.getLayer().getParent().getId());
		assertNotNull(item.get_source());

		// Se restablece el estado de la vista
		repository.delete(event.getLayer().getId(), event.getLayer().getParent().getId());

		assertNotNull(confirm);
		assertEquals(LayerEventTypes.UPDATE_CONFIRMED.toString(), confirm.getType());

		Layer layer = (Layer) item.get_source();
		assertEquals(layer.getId(), event.getAggregateId());
		assertEquals(layer.getThemeInspire().getName(), updateEvent.getThemeInspire().getName());
	}

	@Test
	public void sendUpdateLayerEvent_PublishCreateLayerFailedEvent_IfParentNotExist() throws Exception {

@@ -387,7 +418,6 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest {
	@Test
	public void sendDeleteLayerEvent_PublishDeleteLayerFailedEvent_IfNoConstraintsFulfilled() throws Exception {

		// TODO: Implementar cuando se metan las referencias en la vista.
		assertTrue(true);
	}

@@ -473,6 +503,21 @@ public class LayerEventHandlerTest extends DocumentationViewBaseTest {
		return updatedEvent;
	}

	protected UpdateThemeInspireInLayerEvent getUpdateThemeInspireInLayerEvent() throws IOException {

		UpdateThemeInspireInLayerEvent event = new UpdateThemeInspireInLayerEvent().buildFrom(getUpdateLayerEvent());

		LayerDTO layer = getLayer();
		layer.getThemeInspire().setName("Nombre cambiado");
		event.setThemeInspire(layer.getThemeInspire());
		event.setAggregateId(layer.getId());
		event.setVersion(3);
		event.setSessionId(UUID.randomUUID().toString());
		event.setUserId(USER_ID);

		return event;
	}

	protected RefreshLayerEvent getRefreshLayerEvent() throws IOException {

		RefreshLayerEvent refreshEvent = new RefreshLayerEvent();