Commit 544f2d94 authored by Noel Alonso's avatar Noel Alonso
Browse files

Cambia eventos generados por los comandos + tests

parent e297e0fe
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -26,17 +26,17 @@ import es.redmic.commandslib.usersettings.commands.DeleteSettingsCommand;
import es.redmic.commandslib.usersettings.commands.SaveSettingsCommand;
import es.redmic.commandslib.usersettings.commands.UpdateSettingsCommand;
import es.redmic.commandslib.usersettings.statestore.SettingsStateStore;
import es.redmic.usersettingslib.dto.PersistenceDTO;
import es.redmic.usersettingslib.dto.SettingsDTO;
import es.redmic.usersettingslib.events.SettingsEventTypes;
import es.redmic.usersettingslib.events.common.PersistenceCancelledEvent;
import es.redmic.usersettingslib.events.common.PersistenceEvent;
import es.redmic.usersettingslib.events.common.SettingsCancelledEvent;
import es.redmic.usersettingslib.events.common.SettingsEvent;
import es.redmic.usersettingslib.events.delete.CheckDeleteSettingsEvent;
import es.redmic.usersettingslib.events.delete.SettingsDeletedEvent;
import es.redmic.usersettingslib.events.save.SaveSettingsEvent;
import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent;

public class PersistenceAggregate extends Aggregate {

	private PersistenceDTO persistence;
	private SettingsDTO settings;

	private SettingsStateStore settingsStateStore;

@@ -44,7 +44,7 @@ public class PersistenceAggregate extends Aggregate {
		this.settingsStateStore = settingsStateStore;
	}

	public SaveSettingsEvent process(SaveSettingsCommand cmd) {
	public PartialSaveSettingsEvent process(SaveSettingsCommand cmd) {

		assert settingsStateStore != null;

@@ -57,13 +57,13 @@ public class PersistenceAggregate extends Aggregate {

		this.setAggregateId(id);

		SaveSettingsEvent evt = new SaveSettingsEvent(cmd.getPersistence());
		PartialSaveSettingsEvent evt = new PartialSaveSettingsEvent(cmd.getPersistence());
		evt.setAggregateId(id);
		evt.setVersion(1);
		return evt;
	}

	public SaveSettingsEvent process(UpdateSettingsCommand cmd) {
	public PartialSaveSettingsEvent process(UpdateSettingsCommand cmd) {

		assert settingsStateStore != null;

@@ -75,7 +75,7 @@ public class PersistenceAggregate extends Aggregate {

		checkState(id, state.getType());

		SaveSettingsEvent evt = new SaveSettingsEvent(cmd.getPersistence());
		PartialSaveSettingsEvent evt = new PartialSaveSettingsEvent(cmd.getPersistence());
		evt.setAggregateId(id);
		evt.setVersion(getVersion() + 1);
		return evt;
@@ -99,8 +99,8 @@ public class PersistenceAggregate extends Aggregate {
		return evt;
	}

	public PersistenceDTO getPersistence() {
		return persistence;
	public SettingsDTO getSettings() {
		return settings;
	}

	@Override
@@ -126,7 +126,7 @@ public class PersistenceAggregate extends Aggregate {
		switch (eventType) {
		case "SAVED":
			logger.debug("Settings guardada");
			apply((PersistenceEvent) event);
			apply((SettingsEvent) event);
			break;
		case "DELETED":
			logger.debug("Settings borrada");
@@ -136,16 +136,16 @@ public class PersistenceAggregate extends Aggregate {
		case "SAVE_CANCELLED":
		case "DELETE_CANCELLED":
			logger.debug("Compensación por guardado/borrado fallido");
			apply((PersistenceCancelledEvent) event);
			apply((SettingsCancelledEvent) event);
			break;
		default:
			logger.debug("Evento no manejado ", event.getType());
		}
	}

	public void apply(PersistenceEvent evt) {
	public void apply(SettingsEvent evt) {
		super.apply(evt);
		this.persistence = evt.getPersistence();
		this.settings = evt.getSettings();
	}

	public void apply(SettingsDeletedEvent evt) {
@@ -153,14 +153,14 @@ public class PersistenceAggregate extends Aggregate {
		this.deleted = true;
	}

	public void apply(PersistenceCancelledEvent evt) {
	public void apply(SettingsCancelledEvent evt) {
		super.apply(evt);
		this.persistence = evt.getPersistence();
		this.settings = evt.getSettings();
	}

	@Override
	protected void reset() {
		this.persistence = null;
		this.settings = null;
		super.reset();
	}
}
+23 −23
Original line number Diff line number Diff line
@@ -26,17 +26,17 @@ import es.redmic.commandslib.usersettings.commands.ClearCommand;
import es.redmic.commandslib.usersettings.commands.DeselectCommand;
import es.redmic.commandslib.usersettings.commands.SelectCommand;
import es.redmic.commandslib.usersettings.statestore.SettingsStateStore;
import es.redmic.usersettingslib.dto.SelectionDTO;
import es.redmic.usersettingslib.dto.SettingsDTO;
import es.redmic.usersettingslib.events.SettingsEventTypes;
import es.redmic.usersettingslib.events.clear.ClearEvent;
import es.redmic.usersettingslib.events.common.SelectionCancelledEvent;
import es.redmic.usersettingslib.events.common.SelectionEvent;
import es.redmic.usersettingslib.events.deselect.DeselectEvent;
import es.redmic.usersettingslib.events.select.SelectEvent;
import es.redmic.usersettingslib.events.clearselection.PartialClearSelectionEvent;
import es.redmic.usersettingslib.events.common.SettingsCancelledEvent;
import es.redmic.usersettingslib.events.common.SettingsEvent;
import es.redmic.usersettingslib.events.deselect.PartialDeselectEvent;
import es.redmic.usersettingslib.events.select.PartialSelectEvent;

public class SelectionAggregate extends Aggregate {

	private SelectionDTO selection;
	private SettingsDTO settings;

	private SettingsStateStore settingsStateStore;

@@ -44,7 +44,7 @@ public class SelectionAggregate extends Aggregate {
		this.settingsStateStore = settingsStateStore;
	}

	public SelectEvent process(SelectCommand cmd) {
	public PartialSelectEvent process(SelectCommand cmd) {

		assert settingsStateStore != null;

@@ -57,13 +57,13 @@ public class SelectionAggregate extends Aggregate {

		this.setAggregateId(id);

		SelectEvent evt = new SelectEvent(cmd.getSelection());
		PartialSelectEvent evt = new PartialSelectEvent(cmd.getSelection());
		evt.setAggregateId(id);
		evt.setVersion(1);
		return evt;
	}

	public DeselectEvent process(DeselectCommand cmd) {
	public PartialDeselectEvent process(DeselectCommand cmd) {

		assert settingsStateStore != null;

@@ -75,13 +75,13 @@ public class SelectionAggregate extends Aggregate {

		checkState(id, state.getType());

		DeselectEvent evt = new DeselectEvent(cmd.getSelection());
		PartialDeselectEvent evt = new PartialDeselectEvent(cmd.getSelection());
		evt.setAggregateId(id);
		evt.setVersion(getVersion() + 1);
		return evt;
	}

	public ClearEvent process(ClearCommand cmd) {
	public PartialClearSelectionEvent process(ClearCommand cmd) {

		assert settingsStateStore != null;

@@ -93,14 +93,14 @@ public class SelectionAggregate extends Aggregate {

		checkState(id, state.getType());

		ClearEvent evt = new ClearEvent(cmd.getSelection());
		PartialClearSelectionEvent evt = new PartialClearSelectionEvent(cmd.getSelection());
		evt.setAggregateId(id);
		evt.setVersion(getVersion() + 1);
		return evt;
	}

	public SelectionDTO getSelection() {
		return selection;
	public SettingsDTO getSettings() {
		return settings;
	}

	@Override
@@ -127,35 +127,35 @@ public class SelectionAggregate extends Aggregate {
		switch (eventType) {
		case "SELECTED":
		case "DESELECTED":
		case "CLEARED":
		case "SELECTION_CLEARED":
			logger.debug("Selección modificada");
			apply((SelectionEvent) event);
			apply((SettingsEvent) event);
			break;
		// CANCELLED
		case "SELECT_CANCELLED":
		case "DESELECT_CANCELLED":
		case "CLEAR_CANCELLED":
			logger.debug("Compensación por selección fallida");
			apply((SelectionCancelledEvent) event);
			apply((SettingsCancelledEvent) event);
			break;
		default:
			logger.debug("Evento no manejado ", event.getType());
		}
	}

	public void apply(SelectionEvent evt) {
	public void apply(SettingsEvent evt) {
		super.apply(evt);
		selection = evt.getSelection();
		settings = evt.getSettings();
	}

	public void apply(SelectionCancelledEvent evt) {
	public void apply(SettingsCancelledEvent evt) {
		super.apply(evt);
		selection = evt.getSelection();
		settings = evt.getSettings();
	}

	@Override
	protected void reset() {
		this.selection = null;
		this.settings = null;
		super.reset();
	}
}
+47 −25
Original line number Diff line number Diff line
@@ -28,10 +28,11 @@ import org.joda.time.DateTime;

import es.redmic.usersettingslib.dto.PersistenceDTO;
import es.redmic.usersettingslib.dto.SelectionDTO;
import es.redmic.usersettingslib.dto.SettingsDTO;
import es.redmic.usersettingslib.events.SettingsEventTypes;
import es.redmic.usersettingslib.events.clear.ClearCancelledEvent;
import es.redmic.usersettingslib.events.clear.ClearEvent;
import es.redmic.usersettingslib.events.clear.ClearedEvent;
import es.redmic.usersettingslib.events.clearselection.ClearSelectionCancelledEvent;
import es.redmic.usersettingslib.events.clearselection.ClearSelectionEvent;
import es.redmic.usersettingslib.events.clearselection.SelectionClearedEvent;
import es.redmic.usersettingslib.events.delete.DeleteSettingsCancelledEvent;
import es.redmic.usersettingslib.events.delete.DeleteSettingsEvent;
import es.redmic.usersettingslib.events.delete.SettingsDeletedEvent;
@@ -61,7 +62,7 @@ public abstract class SettingsDataUtil {
		evt.setType(SettingsEventTypes.SELECT);
		evt.setVersion(1);
		evt.setUserId(USER);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -69,7 +70,7 @@ public abstract class SettingsDataUtil {

		SelectedEvent evt = new SelectedEvent().buildFrom(getSelectEvent(code));
		evt.setType(SettingsEventTypes.SELECTED);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -77,7 +78,7 @@ public abstract class SettingsDataUtil {

		SelectCancelledEvent evt = new SelectCancelledEvent().buildFrom(getSelectEvent(code));
		evt.setType(SettingsEventTypes.SELECT_CANCELLED);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		evt.setExceptionType("ItemNotFound");
		Map<String, String> arguments = new HashMap<String, String>();
		arguments.put("a", "b");
@@ -94,7 +95,7 @@ public abstract class SettingsDataUtil {
		evt.setType(SettingsEventTypes.SELECT);
		evt.setVersion(1);
		evt.setUserId(USER);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -102,7 +103,7 @@ public abstract class SettingsDataUtil {

		DeselectedEvent evt = new DeselectedEvent().buildFrom(getDeselectEvent(code));
		evt.setType(SettingsEventTypes.DESELECTED);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -110,7 +111,7 @@ public abstract class SettingsDataUtil {

		DeselectCancelledEvent evt = new DeselectCancelledEvent().buildFrom(getDeselectEvent(code));
		evt.setType(SettingsEventTypes.DESELECT_CANCELLED);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		evt.setExceptionType("ItemNotFound");
		Map<String, String> arguments = new HashMap<String, String>();
		arguments.put("a", "b");
@@ -120,30 +121,30 @@ public abstract class SettingsDataUtil {

	// CLEAR

	public static ClearEvent getClearEvent(String code) {
	public static ClearSelectionEvent getClearEvent(String code) {

		ClearEvent evt = new ClearEvent();
		ClearSelectionEvent evt = new ClearSelectionEvent();
		evt.setAggregateId(PREFIX + code);
		evt.setType(SettingsEventTypes.CLEAR);
		evt.setType(SettingsEventTypes.CLEAR_SELECTION);
		evt.setVersion(1);
		evt.setUserId(USER);
		evt.setSelection(getSelectionDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

	public static ClearedEvent getClearedEvent(String code) {
	public static SelectionClearedEvent getClearedEvent(String code) {

		ClearedEvent evt = new ClearedEvent().buildFrom(getClearEvent(code));
		evt.setType(SettingsEventTypes.CLEARED);
		evt.setSelection(getSelectionDTO(code));
		SelectionClearedEvent evt = new SelectionClearedEvent().buildFrom(getClearEvent(code));
		evt.setType(SettingsEventTypes.SELECTION_CLEARED);
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

	public static ClearCancelledEvent getClearCancelledEvent(String code) {
	public static ClearSelectionCancelledEvent getClearCancelledEvent(String code) {

		ClearCancelledEvent evt = new ClearCancelledEvent().buildFrom(getClearEvent(code));
		evt.setType(SettingsEventTypes.CLEAR_CANCELLED);
		evt.setSelection(getSelectionDTO(code));
		ClearSelectionCancelledEvent evt = new ClearSelectionCancelledEvent().buildFrom(getClearEvent(code));
		evt.setType(SettingsEventTypes.CLEAR_SELECTION_CANCELLED);
		evt.setSettings(getSettingsDTO(code));
		evt.setExceptionType("ItemNotFound");
		Map<String, String> arguments = new HashMap<String, String>();
		arguments.put("a", "b");
@@ -160,7 +161,7 @@ public abstract class SettingsDataUtil {
		evt.setType(SettingsEventTypes.SAVE);
		evt.setVersion(1);
		evt.setUserId(USER);
		evt.setPersistence(getPersistenceDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -168,7 +169,7 @@ public abstract class SettingsDataUtil {

		SettingsSavedEvent evt = new SettingsSavedEvent().buildFrom(getSaveSettingsEvent(code));
		evt.setType(SettingsEventTypes.SAVED);
		evt.setPersistence(getPersistenceDTO(code));
		evt.setSettings(getSettingsDTO(code));
		return evt;
	}

@@ -176,7 +177,7 @@ public abstract class SettingsDataUtil {

		SaveSettingsCancelledEvent evt = new SaveSettingsCancelledEvent().buildFrom(getSaveSettingsEvent(code));
		evt.setType(SettingsEventTypes.SAVE_CANCELLED);
		evt.setPersistence(getPersistenceDTO(code));
		evt.setSettings(getSettingsDTO(code));
		evt.setExceptionType("ItemNotFound");
		Map<String, String> arguments = new HashMap<String, String>();
		arguments.put("a", "b");
@@ -207,7 +208,7 @@ public abstract class SettingsDataUtil {

		DeleteSettingsCancelledEvent evt = new DeleteSettingsCancelledEvent().buildFrom(getDeleteSettingsEvent(code));
		evt.setType(SettingsEventTypes.DELETE_CANCELLED);
		evt.setPersistence(getPersistenceDTO(code));
		evt.setSettings(getSettingsDTO(code));
		evt.setExceptionType("ItemNotFound");
		Map<String, String> arguments = new HashMap<String, String>();
		arguments.put("a", "b");
@@ -251,4 +252,25 @@ public abstract class SettingsDataUtil {
		persistence.setAccessed(DateTime.now());
		return persistence;
	}

	@SuppressWarnings("serial")
	public static SettingsDTO getSettingsDTO(String code) {

		SettingsDTO settings = new SettingsDTO();

		settings.setId(PREFIX + code);
		settings.setName("prueba");
		settings.setService("prueba");
		settings.setSelection(new ArrayList<String>() {
			{
				add("1");
			}
		});

		settings.setInserted(DateTime.now());
		settings.setUpdated(DateTime.now());
		settings.setAccessed(DateTime.now());

		return settings;
	}
}
+8 −8
Original line number Diff line number Diff line
@@ -39,8 +39,8 @@ import es.redmic.commandslib.exceptions.ItemLockedException;
import es.redmic.commandslib.usersettings.SettingsDataUtil;
import es.redmic.commandslib.usersettings.aggregate.PersistenceAggregate;
import es.redmic.commandslib.usersettings.statestore.SettingsStateStore;
import es.redmic.usersettingslib.events.common.PersistenceCancelledEvent;
import es.redmic.usersettingslib.events.common.PersistenceEvent;
import es.redmic.usersettingslib.events.common.SettingsCancelledEvent;
import es.redmic.usersettingslib.events.common.SettingsEvent;
import es.redmic.usersettingslib.events.delete.DeleteSettingsCancelledEvent;
import es.redmic.usersettingslib.events.delete.DeleteSettingsEvent;
import es.redmic.usersettingslib.events.delete.SettingsDeletedEvent;
@@ -152,7 +152,7 @@ public class ApplyEventTest {

		agg.loadFromHistory(history);

		checkCancelledState((PersistenceCancelledEvent) history.get(1));
		checkCancelledState((SettingsCancelledEvent) history.get(1));
	}

	@Test
@@ -166,22 +166,22 @@ public class ApplyEventTest {

		agg.loadFromHistory(history);

		checkCancelledState((PersistenceCancelledEvent) history.get(1));
		checkCancelledState((SettingsCancelledEvent) history.get(1));
	}

	private void checkCancelledState(PersistenceCancelledEvent evt) {
	private void checkCancelledState(SettingsCancelledEvent evt) {

		assertEquals(agg.getVersion(), evt.getVersion());
		assertEquals(agg.getAggregateId(), evt.getAggregateId());
		assertEquals(agg.getPersistence(), evt.getPersistence());
		assertEquals(agg.getSettings(), evt.getSettings());
		assertFalse(agg.isDeleted());
	}

	private void checkSavedState(PersistenceEvent evt) {
	private void checkSavedState(SettingsEvent evt) {

		assertEquals(agg.getVersion(), evt.getVersion());
		assertEquals(agg.getAggregateId(), evt.getAggregateId());
		assertEquals(agg.getPersistence(), evt.getPersistence());
		assertEquals(agg.getSettings(), evt.getSettings());
		assertFalse(agg.isDeleted());
	}

+25 −5
Original line number Diff line number Diff line
package es.redmic.commandslib.usersettings.persistence;

/*-
 * #%L
 * commands-lib
 * %%
 * Copyright (C) 2019 REDMIC Project / Server
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -25,7 +45,7 @@ import es.redmic.exception.data.ItemNotFoundException;
import es.redmic.usersettingslib.dto.PersistenceDTO;
import es.redmic.usersettingslib.events.SettingsEventTypes;
import es.redmic.usersettingslib.events.delete.CheckDeleteSettingsEvent;
import es.redmic.usersettingslib.events.save.SaveSettingsEvent;
import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent;

@RunWith(MockitoJUnitRunner.class)
public class ProcessEventTest {
@@ -53,7 +73,7 @@ public class ProcessEventTest {

		SaveSettingsCommand command = new SaveSettingsCommand(persistence);

		SaveSettingsEvent evt = agg.process(command);
		PartialSaveSettingsEvent evt = agg.process(command);

		assertNotNull(evt);
		assertNotNull(evt.getDate());
@@ -61,7 +81,7 @@ public class ProcessEventTest {
		assertEquals(evt.getPersistence(), persistence);
		assertNotNull(evt.getId());
		assertEquals(evt.getAggregateId(), persistence.getId());
		assertEquals(evt.getType(), SettingsEventTypes.SAVE);
		assertEquals(evt.getType(), SettingsEventTypes.PARTIAL_SAVE);
		assertTrue(evt.getVersion().equals(1));
	}

@@ -74,7 +94,7 @@ public class ProcessEventTest {

		UpdateSettingsCommand command = new UpdateSettingsCommand(persistence);

		SaveSettingsEvent evt = agg.process(command);
		PartialSaveSettingsEvent evt = agg.process(command);

		assertNotNull(evt);
		assertNotNull(evt.getDate());
@@ -82,7 +102,7 @@ public class ProcessEventTest {
		assertEquals(evt.getPersistence(), persistence);
		assertNotNull(evt.getId());
		assertEquals(evt.getAggregateId(), persistence.getId());
		assertEquals(evt.getType(), SettingsEventTypes.SAVE);
		assertEquals(evt.getType(), SettingsEventTypes.PARTIAL_SAVE);
		assertTrue(evt.getVersion().equals(2));
	}

Loading