Loading src/main/java/es/redmic/commandslib/usersettings/aggregate/PersistenceAggregate.java +18 −18 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -99,8 +99,8 @@ public class PersistenceAggregate extends Aggregate { return evt; } public PersistenceDTO getPersistence() { return persistence; public SettingsDTO getSettings() { return settings; } @Override Loading @@ -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"); Loading @@ -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) { Loading @@ -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(); } } src/main/java/es/redmic/commandslib/usersettings/aggregate/SelectionAggregate.java +23 −23 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading @@ -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(); } } src/test/java/es/redmic/commandslib/usersettings/SettingsDataUtil.java +47 −25 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading @@ -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"); Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading Loading @@ -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"); Loading Loading @@ -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; } } src/test/java/es/redmic/commandslib/usersettings/persistence/ApplyEventTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -152,7 +152,7 @@ public class ApplyEventTest { agg.loadFromHistory(history); checkCancelledState((PersistenceCancelledEvent) history.get(1)); checkCancelledState((SettingsCancelledEvent) history.get(1)); } @Test Loading @@ -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()); } Loading src/test/java/es/redmic/commandslib/usersettings/persistence/ProcessEventTest.java +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; Loading @@ -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 { Loading Loading @@ -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()); Loading @@ -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)); } Loading @@ -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()); Loading @@ -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 Loading
src/main/java/es/redmic/commandslib/usersettings/aggregate/PersistenceAggregate.java +18 −18 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -99,8 +99,8 @@ public class PersistenceAggregate extends Aggregate { return evt; } public PersistenceDTO getPersistence() { return persistence; public SettingsDTO getSettings() { return settings; } @Override Loading @@ -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"); Loading @@ -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) { Loading @@ -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(); } }
src/main/java/es/redmic/commandslib/usersettings/aggregate/SelectionAggregate.java +23 −23 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading @@ -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(); } }
src/test/java/es/redmic/commandslib/usersettings/SettingsDataUtil.java +47 −25 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading @@ -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"); Loading @@ -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; } Loading @@ -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; } Loading @@ -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"); Loading Loading @@ -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"); Loading Loading @@ -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; } }
src/test/java/es/redmic/commandslib/usersettings/persistence/ApplyEventTest.java +8 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -152,7 +152,7 @@ public class ApplyEventTest { agg.loadFromHistory(history); checkCancelledState((PersistenceCancelledEvent) history.get(1)); checkCancelledState((SettingsCancelledEvent) history.get(1)); } @Test Loading @@ -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()); } Loading
src/test/java/es/redmic/commandslib/usersettings/persistence/ProcessEventTest.java +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; Loading @@ -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 { Loading Loading @@ -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()); Loading @@ -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)); } Loading @@ -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()); Loading @@ -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