public void AppliesStatusChangedWhenStatusWasInsertedAfterAnotherWasRemoved() { //1: Given set status //2: => delete status from step 1 //3: => import new status with same lifetime // var register = Arrange(Generate.StreetNameWasRegistered); var sut = StreetName.Factory(); sut.Initialize(new List <object> { register }); var crabLifetime = new CrabLifetime(new DateTime(1830, 1, 1).ToCrabLocalDateTime(), null); var firstStatusId = Arrange(Generate.CrabStreetNameStatusId); sut = Act(sut, CrabStreetNameStatus.InUse, crabLifetime, CrabModification.Historize, firstStatusId); sut = Act(sut, CrabStreetNameStatus.InUse, crabLifetime, CrabModification.Delete, firstStatusId); sut.Should().HaveSingleChange <StreetNameStatusWasRemoved>(); sut.Should().HaveSingleChange <StreetNameBecameIncomplete>(); sut.ClearChanges(); sut = Act(sut, CrabStreetNameStatus.Proposed, crabLifetime, CrabModification.Insert); sut.Should().HaveSingleChange <StreetNameWasProposed>(); sut.Should().HaveSingleChange <StreetNameBecameComplete>(); sut.Should().NotHaveAnyChange <StreetNameBecameCurrent>(); sut.Should().NotHaveAnyChange <StreetNameWasCorrectedToCurrent>(); sut.Should().NotHaveAnyChange <StreetNameWasCorrectedToProposed>(); }
public void AppliesCorrectStatusChangedWhenOlderStatusWasInserted() { //1: Given set status //2: => import with new status older lifetime //3: => import with status from step 1, with same begin, but different end var register = Arrange(Generate.StreetNameWasRegistered); var sut = StreetName.Factory(); sut.Initialize(new List <object> { register }); var firstDate = new DateTime(1830, 1, 1).ToCrabLocalDateTime(); var secondDate = new DateTime(2015, 1, 1).ToCrabLocalDateTime(); var firstStatusId = Arrange(Generate.CrabStreetNameStatusId); sut = Act(sut, CrabStreetNameStatus.InUse, new CrabLifetime(secondDate, null), CrabModification.Historize, firstStatusId); sut = Act(sut, CrabStreetNameStatus.Proposed, new CrabLifetime(firstDate, null), CrabModification.Insert); sut = Act(sut, CrabStreetNameStatus.InUse, new CrabLifetime(firstDate, secondDate), CrabModification.Correction, firstStatusId); sut.Should().HaveSingleChange <StreetNameBecameCurrent>(); sut.Should().NotHaveAnyChange <StreetNameWasProposed>(); sut.Should().NotHaveAnyChange <StreetNameWasCorrectedToCurrent>(); sut.Should().NotHaveAnyChange <StreetNameWasCorrectedToProposed>(); }
public void NoChangesWhenStatusWasDeletedOfAnNonCurrentStatus() { //1: Given set status //2: => import new status (new id) //3: => import with status from step 1 with modification delete var register = Arrange(Generate.StreetNameWasRegistered); var sut = StreetName.Factory(); sut.Initialize(new List <object> { register }); var firstStatusId = Arrange(Generate.CrabStreetNameStatusId); var secondStatusId = Arrange(Generate.CrabStreetNameStatusId); var lifetime = new CrabLifetime(DateTime.MinValue.ToCrabLocalDateTime(), null); Act(sut, CrabStreetNameStatus.Proposed, lifetime, CrabModification.Insert, firstStatusId); Act(sut, CrabStreetNameStatus.InUse, lifetime, CrabModification.Insert, secondStatusId); Act(sut, CrabStreetNameStatus.Proposed, lifetime, CrabModification.Delete, firstStatusId); sut.Should().NotHaveAnyChange <StreetNameStatusWasRemoved>(); }