public void ImportStatusFromCrab( CrabStreetNameStatusId streetNameStatusId, CrabStreetNameId streetNameId, CrabStreetNameStatus streetNameStatus, CrabLifetime lifeTime, CrabTimestamp timestamp, CrabOperator beginOperator, CrabModification?beginModification, CrabOrganisation?beginOrganisation) { if (IsRemoved && beginModification != CrabModification.Delete) { throw new InvalidOperationException($"Cannot change removed street name for street name id {_streetNameId}/{streetNameId}"); } var legacyEvent = new StreetNameStatusWasImportedFromCrab( streetNameStatusId, streetNameId, streetNameStatus, lifeTime, timestamp, beginOperator, beginModification, beginOrganisation); ApplyStatusChangesFor(legacyEvent); ApplyCompletion(); ApplyChange(legacyEvent); }
public void AppliesStreetNameStatusEventOnlyWhenChanged(CrabStreetNameStatus givenStatus, Type type) { //Arrange var lifetime = Arrange(Generate.CrabLifetimeWithEndDate(null)); var streetNameId = Arrange(Generate.StreetNameId); var sut = RegisterWithId(streetNameId); //Act sut = Act(sut, givenStatus, lifetime, Arrange(Generate.CrabModificationNullableExceptDeleteCorrection) ); sut = Act(sut, givenStatus, lifetime, Arrange(Generate.CrabModificationNullableExceptDeleteCorrection) ); sut.Should().HaveChanges(); sut.Should().HaveSingleChange(type); sut.Should().HaveSingleChange <StreetNameBecameComplete>(); sut.Should().NotHaveAnyChange <StreetNameBecameIncomplete>(); }
public void AppliesStreetNameStatusWasCorrectedToCurrent(CrabStreetNameStatus givenStatus) { //Arrange var streetNameId = Arrange(Generate.StreetNameId); var sut = RegisterWithId(streetNameId); var lifetime = Arrange(Generate.CrabLifetimeWithEndDate(null)); var statusId = Arrange(Generate.CrabStreetNameStatusId); //Act sut = Act(sut, Arrange(Generate.EnumExcept<CrabStreetNameStatus>(CrabStreetNameStatus.InUse, CrabStreetNameStatus.OutOfUse)), lifetime, Arrange(Generate.CrabModificationNullableExceptDeleteCorrection), statusId); sut = Act(sut, givenStatus, lifetime, CrabModification.Correction, statusId); sut.Should().HaveChanges(); sut.Should().HaveSingleChange<StreetNameWasCorrectedToCurrent>() .Which.Should().HaveStreetNameId(streetNameId); }
public void AppliesStreetNameBecameCurrent(CrabStreetNameStatus givenStatus) { //Arrange var lifetime = Arrange(Generate.CrabLifetimeWithEndDate(null)); var streetNameId = Arrange(Generate.StreetNameId); var sut = RegisterWithId(streetNameId); //Act sut = Act(sut, givenStatus, lifetime, Arrange(Generate.CrabModificationNullableExceptDeleteCorrection)); sut.Should().HaveChanges(); sut.Should().HaveSingleChange <StreetNameBecameCurrent>() .Which.Should().HaveStreetNameId(streetNameId); AssertBecameComplete(sut, streetNameId); }
protected StreetName Act(StreetName sut, CrabStreetNameStatus status, CrabLifetime lifetime, CrabModification?modification, CrabStreetNameStatusId statusId = null) { LogAct($"ImportStatusFromCrab({status}, {lifetime}, {modification})"); sut.ImportStatusFromCrab(statusId ?? Arrange(Generate.CrabStreetNameStatusId), Arrange(Generate.CrabStreetNameId), status, lifetime, Arrange(Generate.CrabTimestamp), Arrange(Generate.CrabOperator), modification, Arrange(Generate.CrabOrganisationNullable) ); return(sut); }
public ImportStreetNameStatusFromCrab( CrabStreetNameStatusId streetNameStatusId, CrabStreetNameId streetNameId, CrabStreetNameStatus streetNameStatus, CrabLifetime lifeTime, CrabTimestamp timestamp, CrabOperator @operator, CrabModification?modification, CrabOrganisation?organisation) { StreetNameStatusId = streetNameStatusId; StreetNameId = streetNameId; StreetNameStatus = streetNameStatus; LifeTime = lifeTime; Timestamp = timestamp; Operator = @operator; Modification = modification; Organisation = organisation; }
public StreetNameStatusWasImportedFromCrab( CrabStreetNameStatusId streetNameStatusId, CrabStreetNameId streetNameId, CrabStreetNameStatus streetNameStatus, CrabLifetime lifetime, CrabTimestamp timestamp, CrabOperator @operator, CrabModification?modification, CrabOrganisation?organisation) { StreetNameStatusId = streetNameStatusId; StreetNameId = streetNameId; StreetNameStatus = streetNameStatus; BeginDateTime = lifetime.BeginDateTime; EndDateTime = lifetime.EndDateTime; Timestamp = timestamp; Operator = @operator; Modification = modification; Organisation = organisation; }
private StreetNameStatusWasImportedFromCrab( int streetNameStatusId, int streetNameId, CrabStreetNameStatus streetNameStatus, LocalDateTime?beginDateTime, LocalDateTime?endDateTime, Instant timestamp, string @operator, CrabModification?modification, CrabOrganisation?organisation) : this( new CrabStreetNameStatusId(streetNameStatusId), new CrabStreetNameId(streetNameId), streetNameStatus, new CrabLifetime(beginDateTime, endDateTime), new CrabTimestamp(timestamp), new CrabOperator(@operator), modification, organisation) { }