Loading src/main/java/es/redmic/usersettingslib/events/SettingsEventTypes.java +4 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,10 @@ public abstract class SettingsEventTypes { DELETE_CONFIRMED = "DELETE_CONFIRMED", DELETED = "DELETED", DELETE_FAILED = "DELETE_FAILED", DELETE_CANCELLED = "DELETE_CANCELLED"; DELETE_CANCELLED = "DELETE_CANCELLED", //FAIL PREPARE_ROLLBACK = "PREPARE_ROLLBACK", ROLLBACK = "ROLLBACK"; //@formatter:on public static boolean isLocked(String eventType) { Loading src/main/java/es/redmic/usersettingslib/events/fail/SettingsRollbackEvent.java 0 → 100644 +125 −0 Original line number Diff line number Diff line package es.redmic.usersettingslib.events.fail; /*- * #%L * user-settings-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 org.apache.avro.Schema; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import es.redmic.brokerlib.avro.common.EventTypes; import es.redmic.brokerlib.avro.fail.BaseRollbackEvent; import es.redmic.usersettingslib.dto.SettingsDTO; public class SettingsRollbackEvent extends BaseRollbackEvent { // @formatter:off public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{" + "\"type\":\"record\",\"name\":\"SettingsRollbackEvent\"," + "\"namespace\":\"es.redmic.usersettingslib.events.fail\",\"fields\":[" + "{\"name\":\"lastSnapshotItem\",\"type\":" + SettingsDTO.SCHEMA$.toString() + "}," + "{\"name\":\"failEventType\",\"type\": \"string\"}," + getEventBaseSchema() + "]}"); // @formatter:on static String type = EventTypes.ROLLBACK; private SettingsDTO lastSnapshotItem; public SettingsRollbackEvent() { super(type); } public SettingsDTO getLastSnapshotItem() { return lastSnapshotItem; } public void setLastSnapshotItem(SettingsDTO lastSnapshotItem) { this.lastSnapshotItem = lastSnapshotItem; } @Override public Object get(int field$) { switch (field$) { case 0: return getLastSnapshotItem(); case 1: return getFailEventType(); case 2: return getAggregateId(); case 3: return getVersion(); case 4: return getType(); case 5: return getDate().getMillis(); case 6: return getSessionId(); case 7: return getUserId(); case 8: return getId(); default: throw new org.apache.avro.AvroRuntimeException("Bad index"); } } @Override public void put(int field$, Object value$) { switch (field$) { case 0: setLastSnapshotItem((SettingsDTO) value$); break; case 1: setFailEventType(value$.toString()); break; case 2: setAggregateId(value$.toString()); break; case 3: setVersion((java.lang.Integer) value$); break; case 4: setType(value$.toString()); break; case 5: setDate(new DateTime(value$, DateTimeZone.UTC)); break; case 6: setSessionId(value$.toString()); break; case 7: setUserId(value$.toString()); break; case 8: setId(value$.toString()); break; default: throw new org.apache.avro.AvroRuntimeException("Bad index"); } } @Override public Schema getSchema() { return SCHEMA$; } } src/test/java/es/redmic/usersettingslib/unit/events/SettingsEventsCheckAvroSchemaTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import es.redmic.usersettingslib.events.deselect.DeselectEvent; import es.redmic.usersettingslib.events.deselect.DeselectFailedEvent; import es.redmic.usersettingslib.events.deselect.DeselectedEvent; import es.redmic.usersettingslib.events.deselect.PartialDeselectEvent; import es.redmic.usersettingslib.events.fail.SettingsRollbackEvent; import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent; import es.redmic.usersettingslib.events.save.SaveSettingsCancelledEvent; import es.redmic.usersettingslib.events.save.SaveSettingsConfirmedEvent; Loading Loading @@ -518,4 +519,19 @@ public class SettingsEventsCheckAvroSchemaTest extends AvroBaseTest { assertEquals(result, event); } // FAIL @Test public void SettingsRollbackEventSerializeAndDeserialize_IsSuccessful_IfSchemaAndDataAreCorrect() { SettingsRollbackEvent event = SettingsDataUtil.getSettingsRollbackEvent(); Object result = serializerAndDeserializer(event); assertTrue("El objeto obtenido debe ser una instancia de SettingsRollbackEvent", SettingsRollbackEvent.class.isInstance(result)); assertEquals(result, event); } } src/test/java/es/redmic/usersettingslib/unit/utils/SettingsDataUtil.java +28 −0 Original line number Diff line number Diff line Loading @@ -27,10 +27,12 @@ import java.util.UUID; import org.joda.time.DateTime; import es.redmic.brokerlib.avro.fail.PrepareRollbackEvent; import es.redmic.exception.common.ExceptionType; 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.clearselection.ClearSelectionCancelledEvent; import es.redmic.usersettingslib.events.clearselection.ClearSelectionConfirmedEvent; import es.redmic.usersettingslib.events.clearselection.ClearSelectionEvent; Loading @@ -52,6 +54,7 @@ import es.redmic.usersettingslib.events.deselect.DeselectEvent; import es.redmic.usersettingslib.events.deselect.DeselectFailedEvent; import es.redmic.usersettingslib.events.deselect.DeselectedEvent; import es.redmic.usersettingslib.events.deselect.PartialDeselectEvent; import es.redmic.usersettingslib.events.fail.SettingsRollbackEvent; import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent; import es.redmic.usersettingslib.events.save.SaveSettingsCancelledEvent; import es.redmic.usersettingslib.events.save.SaveSettingsConfirmedEvent; Loading Loading @@ -517,6 +520,31 @@ public abstract class SettingsDataUtil { // public static PrepareRollbackEvent getPrepareRollbackEvent() { return getPrepareRollbackEvent(CODE); } public static PrepareRollbackEvent getPrepareRollbackEvent(String code) { PrepareRollbackEvent event = new PrepareRollbackEvent().buildFrom(getSaveSettingsEvent(code)); event.setFailEventType(SettingsEventTypes.SAVE); return event; } public static SettingsRollbackEvent getSettingsRollbackEvent() { return getSettingsRollbackEvent(CODE); } public static SettingsRollbackEvent getSettingsRollbackEvent(String code) { SettingsRollbackEvent event = new SettingsRollbackEvent().buildFrom(getSaveSettingsEvent(code)); event.setFailEventType(SettingsEventTypes.SAVE); event.setLastSnapshotItem(getSettingsDTO(code)); return event; } public static SelectionDTO getSelectionDTO() { return getSelectionDTO(CODE); } Loading Loading
src/main/java/es/redmic/usersettingslib/events/SettingsEventTypes.java +4 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,10 @@ public abstract class SettingsEventTypes { DELETE_CONFIRMED = "DELETE_CONFIRMED", DELETED = "DELETED", DELETE_FAILED = "DELETE_FAILED", DELETE_CANCELLED = "DELETE_CANCELLED"; DELETE_CANCELLED = "DELETE_CANCELLED", //FAIL PREPARE_ROLLBACK = "PREPARE_ROLLBACK", ROLLBACK = "ROLLBACK"; //@formatter:on public static boolean isLocked(String eventType) { Loading
src/main/java/es/redmic/usersettingslib/events/fail/SettingsRollbackEvent.java 0 → 100644 +125 −0 Original line number Diff line number Diff line package es.redmic.usersettingslib.events.fail; /*- * #%L * user-settings-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 org.apache.avro.Schema; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import es.redmic.brokerlib.avro.common.EventTypes; import es.redmic.brokerlib.avro.fail.BaseRollbackEvent; import es.redmic.usersettingslib.dto.SettingsDTO; public class SettingsRollbackEvent extends BaseRollbackEvent { // @formatter:off public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{" + "\"type\":\"record\",\"name\":\"SettingsRollbackEvent\"," + "\"namespace\":\"es.redmic.usersettingslib.events.fail\",\"fields\":[" + "{\"name\":\"lastSnapshotItem\",\"type\":" + SettingsDTO.SCHEMA$.toString() + "}," + "{\"name\":\"failEventType\",\"type\": \"string\"}," + getEventBaseSchema() + "]}"); // @formatter:on static String type = EventTypes.ROLLBACK; private SettingsDTO lastSnapshotItem; public SettingsRollbackEvent() { super(type); } public SettingsDTO getLastSnapshotItem() { return lastSnapshotItem; } public void setLastSnapshotItem(SettingsDTO lastSnapshotItem) { this.lastSnapshotItem = lastSnapshotItem; } @Override public Object get(int field$) { switch (field$) { case 0: return getLastSnapshotItem(); case 1: return getFailEventType(); case 2: return getAggregateId(); case 3: return getVersion(); case 4: return getType(); case 5: return getDate().getMillis(); case 6: return getSessionId(); case 7: return getUserId(); case 8: return getId(); default: throw new org.apache.avro.AvroRuntimeException("Bad index"); } } @Override public void put(int field$, Object value$) { switch (field$) { case 0: setLastSnapshotItem((SettingsDTO) value$); break; case 1: setFailEventType(value$.toString()); break; case 2: setAggregateId(value$.toString()); break; case 3: setVersion((java.lang.Integer) value$); break; case 4: setType(value$.toString()); break; case 5: setDate(new DateTime(value$, DateTimeZone.UTC)); break; case 6: setSessionId(value$.toString()); break; case 7: setUserId(value$.toString()); break; case 8: setId(value$.toString()); break; default: throw new org.apache.avro.AvroRuntimeException("Bad index"); } } @Override public Schema getSchema() { return SCHEMA$; } }
src/test/java/es/redmic/usersettingslib/unit/events/SettingsEventsCheckAvroSchemaTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import es.redmic.usersettingslib.events.deselect.DeselectEvent; import es.redmic.usersettingslib.events.deselect.DeselectFailedEvent; import es.redmic.usersettingslib.events.deselect.DeselectedEvent; import es.redmic.usersettingslib.events.deselect.PartialDeselectEvent; import es.redmic.usersettingslib.events.fail.SettingsRollbackEvent; import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent; import es.redmic.usersettingslib.events.save.SaveSettingsCancelledEvent; import es.redmic.usersettingslib.events.save.SaveSettingsConfirmedEvent; Loading Loading @@ -518,4 +519,19 @@ public class SettingsEventsCheckAvroSchemaTest extends AvroBaseTest { assertEquals(result, event); } // FAIL @Test public void SettingsRollbackEventSerializeAndDeserialize_IsSuccessful_IfSchemaAndDataAreCorrect() { SettingsRollbackEvent event = SettingsDataUtil.getSettingsRollbackEvent(); Object result = serializerAndDeserializer(event); assertTrue("El objeto obtenido debe ser una instancia de SettingsRollbackEvent", SettingsRollbackEvent.class.isInstance(result)); assertEquals(result, event); } }
src/test/java/es/redmic/usersettingslib/unit/utils/SettingsDataUtil.java +28 −0 Original line number Diff line number Diff line Loading @@ -27,10 +27,12 @@ import java.util.UUID; import org.joda.time.DateTime; import es.redmic.brokerlib.avro.fail.PrepareRollbackEvent; import es.redmic.exception.common.ExceptionType; 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.clearselection.ClearSelectionCancelledEvent; import es.redmic.usersettingslib.events.clearselection.ClearSelectionConfirmedEvent; import es.redmic.usersettingslib.events.clearselection.ClearSelectionEvent; Loading @@ -52,6 +54,7 @@ import es.redmic.usersettingslib.events.deselect.DeselectEvent; import es.redmic.usersettingslib.events.deselect.DeselectFailedEvent; import es.redmic.usersettingslib.events.deselect.DeselectedEvent; import es.redmic.usersettingslib.events.deselect.PartialDeselectEvent; import es.redmic.usersettingslib.events.fail.SettingsRollbackEvent; import es.redmic.usersettingslib.events.save.PartialSaveSettingsEvent; import es.redmic.usersettingslib.events.save.SaveSettingsCancelledEvent; import es.redmic.usersettingslib.events.save.SaveSettingsConfirmedEvent; Loading Loading @@ -517,6 +520,31 @@ public abstract class SettingsDataUtil { // public static PrepareRollbackEvent getPrepareRollbackEvent() { return getPrepareRollbackEvent(CODE); } public static PrepareRollbackEvent getPrepareRollbackEvent(String code) { PrepareRollbackEvent event = new PrepareRollbackEvent().buildFrom(getSaveSettingsEvent(code)); event.setFailEventType(SettingsEventTypes.SAVE); return event; } public static SettingsRollbackEvent getSettingsRollbackEvent() { return getSettingsRollbackEvent(CODE); } public static SettingsRollbackEvent getSettingsRollbackEvent(String code) { SettingsRollbackEvent event = new SettingsRollbackEvent().buildFrom(getSaveSettingsEvent(code)); event.setFailEventType(SettingsEventTypes.SAVE); event.setLastSnapshotItem(getSettingsDTO(code)); return event; } public static SelectionDTO getSelectionDTO() { return getSelectionDTO(CODE); } Loading