public void WithStatusDeleteWhenNewerStatusIsPresent(AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasProposed addressWasProposed, AddressWasOfficiallyAssigned addressWasOfficiallyAssigned, AddressHouseNumberStatusWasImportedFromCrab addressHouseNumberStatusWasImportedFromCrabForProposed, AddressBecameCurrent addressBecameCurrent, AddressHouseNumberStatusWasImportedFromCrab addressHouseNumberStatusWasImportedFromCrabForCurrent, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrabDeleteProposed) { var lifetime = new CrabLifetime(LocalDateTime.FromDateTime(DateTime.Now), null); var deleteProposed = importHouseNumberStatusFromCrabDeleteProposed .WithStatus(CrabAddressStatus.InUse) .WithLifetime(lifetime) .WithCrabModification(CrabModification.Delete) .WithStatusId(new CrabHouseNumberStatusId(addressHouseNumberStatusWasImportedFromCrabForProposed.HouseNumberStatusId)); addressHouseNumberStatusWasImportedFromCrabForProposed = addressHouseNumberStatusWasImportedFromCrabForProposed .WithBeginDate(lifetime.BeginDateTime) .WithStatus(CrabAddressStatus.Proposed); addressHouseNumberStatusWasImportedFromCrabForCurrent = addressHouseNumberStatusWasImportedFromCrabForCurrent .WithBeginDate(lifetime.BeginDateTime) .WithStatus(CrabAddressStatus.InUse); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasProposed, addressWasOfficiallyAssigned, addressHouseNumberStatusWasImportedFromCrabForProposed, addressBecameCurrent, addressHouseNumberStatusWasImportedFromCrabForCurrent) .When(deleteProposed) .Then(addressId, deleteProposed.ToLegacyEvent())); }
public void ThenAddressBecameIncompleteWhenModificationIsDelete( AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasProposed addressWasProposed, AddressWasOfficiallyAssigned addressWasOfficiallyAssigned, AddressWasPositioned addressWasPositioned, AddressBecameComplete addressBecameComplete, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab.WithCrabModification(CrabModification.Delete); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasProposed, addressWasOfficiallyAssigned, addressWasPositioned, addressBecameComplete) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressStatusWasRemoved(addressId), new AddressOfficialAssignmentWasRemoved(addressId), new AddressBecameIncomplete(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void WithStatusProposedWhenOlderLifetime(AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasProposed addressWasProposed, AddressHouseNumberStatusWasImportedFromCrab addressHouseNumberStatusWasImportedFromCrab, AddressWasOfficiallyAssigned addressWasOfficiallyAssigned, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { addressHouseNumberStatusWasImportedFromCrab = addressHouseNumberStatusWasImportedFromCrab .WithStatus(CrabAddressStatus.Proposed); importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithLifetime(new CrabLifetime(addressHouseNumberStatusWasImportedFromCrab.BeginDateTime.Value.PlusDays(-1), null)) .WithStatus(CrabAddressStatus.InUse); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasProposed, addressWasOfficiallyAssigned, addressHouseNumberStatusWasImportedFromCrab ) .When(importHouseNumberStatusFromCrab) .Then(addressId, importHouseNumberStatusFromCrab.ToLegacyEvent())); }
private static void ImportHouseNumberStatusFromCrab(Address address, ImportHouseNumberStatusFromCrab message) { address.ImportHouseNumberStatusFromCrab( message.HouseNumberStatusId, message.HouseNumberId, message.AddressStatus, message.Lifetime, message.Timestamp, message.Operator, message.Modification, message.Organisation); }
public static AddressHouseNumberStatusWasImportedFromCrab ToLegacyEvent(this ImportHouseNumberStatusFromCrab command) { return(new AddressHouseNumberStatusWasImportedFromCrab( command.HouseNumberStatusId, command.HouseNumberId, command.AddressStatus, command.Lifetime, command.Timestamp, command.Operator, command.Modification, command.Organisation)); }
public static ImportHouseNumberStatusFromCrab WithStatusId(this ImportHouseNumberStatusFromCrab command, CrabHouseNumberStatusId statusId) { return(new ImportHouseNumberStatusFromCrab( statusId, command.HouseNumberId, command.AddressStatus, command.Lifetime, command.Timestamp, command.Operator, command.Modification, command.Organisation)); }
public void ThenAddressRemovedException( AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasRemoved addressWasRemoved, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasRemoved ) .When(importHouseNumberStatusFromCrab) .Throws(new AddressRemovedException($"Cannot change removed address for address id {addressId}"))); }
public void WithStatusProposedWhenModificationIsDelete( AddressId addressId, AddressWasRegistered addressWasRegistered, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithCrabModification(CrabModification.Delete) .WithStatus(CrabAddressStatus.Proposed); Assert(new Scenario() .Given(addressId, addressWasRegistered) .When(importHouseNumberStatusFromCrab) .Then(addressId, importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void ThenNoStatusChangeButOfficiallyAssigned( AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasRetired addressWasRetired, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab.WithStatus(CrabAddressStatus.InUse); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasRetired) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressWasOfficiallyAssigned(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void WhenStatusIsReserved( AddressId addressId, AddressWasRegistered addressWasRegistered, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithStatus(CrabAddressStatus.Reserved); Assert(new Scenario() .Given(addressId, addressWasRegistered) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressWasProposed(addressId), new AddressWasOfficiallyAssigned(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void GivenWasCorrectedToNotOffiallyAssignedWhenStatusIsUnoffical( AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasCorrectedToNotOfficiallyAssigned addressWasCorrectedToNotOfficiallyAssigned, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithStatus(CrabAddressStatus.Unofficial); Assert(new Scenario() .Given(addressId, addressWasRegistered) .Given(addressId, addressWasCorrectedToNotOfficiallyAssigned) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressBecameCurrent(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void ThenAddressWasCorrectedToCurrentIfStatusIsInUseAndCorrection( AddressId addressId, AddressWasRegistered addressWasRegistered, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithStatus(CrabAddressStatus.InUse) .WithCrabModification(CrabModification.Correction); Assert(new Scenario() .Given(addressId, addressWasRegistered) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressWasCorrectedToCurrent(addressId), new AddressWasCorrectedToOfficiallyAssigned(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void ThenAddressBecameComplete( Fixture fixture, AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasPositioned addressWasPositioned, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab) { importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab.WithStatus(CrabAddressStatus.Proposed); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasPositioned) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressWasProposed(addressId), new AddressWasOfficiallyAssigned(addressId), new AddressBecameComplete(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }
public void WithRemovedStatusWhenStatusInUseAndSameLifetimeOfPreviouslyRemovedStatus(AddressId addressId, AddressWasRegistered addressWasRegistered, AddressWasProposed addressWasProposed, AddressWasOfficiallyAssigned addressWasOfficiallyAssigned, AddressHouseNumberStatusWasImportedFromCrab addressHouseNumberStatusWasImportedFromCrab, AddressStatusWasRemoved addressStatusWasRemoved, AddressHouseNumberStatusWasImportedFromCrab addressHouseNumberStatusWasImportedFromCrabDelete, ImportHouseNumberStatusFromCrab importHouseNumberStatusFromCrab, CrabLifetime lifetime) { var statusId = new CrabHouseNumberStatusId(1); addressHouseNumberStatusWasImportedFromCrab = addressHouseNumberStatusWasImportedFromCrab .WithHouseNumberStatusId(statusId) .WithStatus(CrabAddressStatus.Proposed) .WithBeginDate(lifetime.BeginDateTime); addressHouseNumberStatusWasImportedFromCrabDelete = addressHouseNumberStatusWasImportedFromCrabDelete .WithHouseNumberStatusId(statusId) .WithStatus(CrabAddressStatus.Proposed) .WithCrabModification(CrabModification.Delete) .WithBeginDate(lifetime.BeginDateTime); importHouseNumberStatusFromCrab = importHouseNumberStatusFromCrab .WithLifetime(lifetime) .WithStatus(CrabAddressStatus.InUse); Assert(new Scenario() .Given(addressId, addressWasRegistered, addressWasProposed, addressWasOfficiallyAssigned, addressHouseNumberStatusWasImportedFromCrab, addressStatusWasRemoved, addressHouseNumberStatusWasImportedFromCrabDelete ) .When(importHouseNumberStatusFromCrab) .Then(addressId, new AddressBecameCurrent(addressId), importHouseNumberStatusFromCrab.ToLegacyEvent())); }