Example #1
0
        public void ImportSubaddressStatusFromCrab(
            CrabSubaddressStatusId subaddressStatusId,
            CrabSubaddressId subaddressId,
            CrabAddressStatus addressStatus,
            CrabLifetime lifetime,
            CrabTimestamp timestamp,
            CrabOperator @operator,
            CrabModification?modification,
            CrabOrganisation?organisation)
        {
            if (IsRemoved && modification != CrabModification.Delete)
            {
                return;
            }

            var legacyEvent = new AddressSubaddressStatusWasImportedFromCrab(
                subaddressStatusId,
                subaddressId,
                addressStatus,
                lifetime,
                timestamp,
                @operator,
                modification,
                organisation);

            ApplyStatusChangesFor(_subAddressStatusChronicle, legacyEvent);

            ApplyAddressCompletion();

            ApplyChange(legacyEvent);
        }
Example #2
0
        public void WithStatusDeleteWhenNewerStatusIsPresent(AddressId addressId,
                                                             AddressWasRegistered addressWasRegistered,
                                                             AddressWasProposed addressWasProposed,
                                                             AddressWasOfficiallyAssigned addressWasOfficiallyAssigned,
                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrabForProposed,
                                                             AddressBecameCurrent addressBecameCurrent,
                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrabForCurrent,
                                                             ImportSubaddressStatusFromCrab importSubaddressStatusFromCrabDeleteProposed)
        {
            var lifetime       = new CrabLifetime(LocalDateTime.FromDateTime(DateTime.Now), null);
            var deleteProposed = importSubaddressStatusFromCrabDeleteProposed
                                 .WithStatus(CrabAddressStatus.InUse)
                                 .WithLifetime(lifetime)
                                 .WithCrabModification(CrabModification.Delete)
                                 .WithStatusId(new CrabSubaddressStatusId(addressSubaddressStatusWasImportedFromCrabForProposed.SubaddressStatusId));

            addressSubaddressStatusWasImportedFromCrabForProposed = addressSubaddressStatusWasImportedFromCrabForProposed
                                                                    .WithBeginDate(lifetime.BeginDateTime)
                                                                    .WithStatus(CrabAddressStatus.Proposed);
            addressSubaddressStatusWasImportedFromCrabForCurrent = addressSubaddressStatusWasImportedFromCrabForCurrent
                                                                   .WithBeginDate(lifetime.BeginDateTime)
                                                                   .WithStatus(CrabAddressStatus.InUse);

            Assert(new Scenario()
                   .Given(addressId,
                          addressWasRegistered,
                          addressWasProposed,
                          addressWasOfficiallyAssigned,
                          addressSubaddressStatusWasImportedFromCrabForProposed,
                          addressBecameCurrent,
                          addressSubaddressStatusWasImportedFromCrabForCurrent)
                   .When(deleteProposed)
                   .Then(addressId,
                         deleteProposed.ToLegacyEvent()));
        }
Example #3
0
        public void WithStatusProposedWhenOlderLifetime(AddressId addressId,
                                                        AddressWasRegistered addressWasRegistered,
                                                        AddressWasProposed addressWasProposed,
                                                        AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrab,
                                                        AddressWasOfficiallyAssigned addressWasOfficiallyAssigned,
                                                        ImportSubaddressStatusFromCrab importSubaddressStatusFromCrab)
        {
            addressSubaddressStatusWasImportedFromCrab = addressSubaddressStatusWasImportedFromCrab
                                                         .WithStatus(CrabAddressStatus.Proposed);

            importSubaddressStatusFromCrab = importSubaddressStatusFromCrab
                                             .WithLifetime(new CrabLifetime(addressSubaddressStatusWasImportedFromCrab.BeginDateTime.Value.PlusDays(-1), null))
                                             .WithStatus(CrabAddressStatus.InUse);

            Assert(new Scenario()
                   .Given(addressId,
                          addressWasRegistered,
                          addressWasProposed,
                          addressWasOfficiallyAssigned,
                          addressSubaddressStatusWasImportedFromCrab
                          )
                   .When(importSubaddressStatusFromCrab)
                   .Then(addressId,
                         importSubaddressStatusFromCrab.ToLegacyEvent()));
        }
Example #4
0
 public static AddressSubaddressStatusWasImportedFromCrab WithBeginDate(this AddressSubaddressStatusWasImportedFromCrab @event, LocalDateTime?beginDate)
 {
     return(new AddressSubaddressStatusWasImportedFromCrab(
                new CrabSubaddressStatusId(@event.SubaddressStatusId),
                new CrabSubaddressId(@event.SubaddressId),
                @event.AddressStatus,
                new CrabLifetime(beginDate, @event.EndDateTime),
                new CrabTimestamp(@event.Timestamp),
                new CrabOperator(@event.Operator),
                @event.Modification,
                @event.Organisation
                ));
 }
Example #5
0
 private void When(AddressSubaddressStatusWasImportedFromCrab @event)
 {
     _subAddressStatusChronicle.Add(@event);
     WhenCrabEventApplied();
 }
Example #6
0
        public void WithRemovedStatusWhenStatusInUseAndSameLifetimeOfPreviouslyRemovedStatus(AddressId addressId,
                                                                                             AddressWasRegistered addressWasRegistered,
                                                                                             AddressWasProposed addressWasProposed,
                                                                                             AddressWasOfficiallyAssigned addressWasOfficiallyAssigned,
                                                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrab,
                                                                                             AddressStatusWasRemoved addressStatusWasRemoved,
                                                                                             AddressSubaddressStatusWasImportedFromCrab addressSubaddressStatusWasImportedFromCrabDelete,
                                                                                             ImportSubaddressStatusFromCrab importSubaddressStatusFromCrab,
                                                                                             CrabLifetime lifetime)
        {
            var statusId = new CrabSubaddressStatusId(1);

            addressSubaddressStatusWasImportedFromCrab = addressSubaddressStatusWasImportedFromCrab
                                                         .WithSubaddressStatusId(statusId)
                                                         .WithStatus(CrabAddressStatus.Proposed)
                                                         .WithBeginDate(lifetime.BeginDateTime);
            addressSubaddressStatusWasImportedFromCrabDelete = addressSubaddressStatusWasImportedFromCrabDelete
                                                               .WithSubaddressStatusId(statusId)
                                                               .WithStatus(CrabAddressStatus.Proposed)
                                                               .WithCrabModification(CrabModification.Delete)
                                                               .WithBeginDate(lifetime.BeginDateTime);

            importSubaddressStatusFromCrab = importSubaddressStatusFromCrab
                                             .WithLifetime(lifetime)
                                             .WithStatus(CrabAddressStatus.InUse);

            Assert(new Scenario()
                   .Given(addressId,
                          addressWasRegistered,
                          addressWasProposed,
                          addressWasOfficiallyAssigned,
                          addressSubaddressStatusWasImportedFromCrab,
                          addressStatusWasRemoved,
                          addressSubaddressStatusWasImportedFromCrabDelete
                          )
                   .When(importSubaddressStatusFromCrab)
                   .Then(addressId,
                         new AddressBecameCurrent(addressId),
                         importSubaddressStatusFromCrab.ToLegacyEvent()));
        }
Example #7
0
 public static AddressSubaddressStatusWasImportedFromCrab WithBeginDate(this AddressSubaddressStatusWasImportedFromCrab @event, DateTimeOffset?beginDate)
 {
     return(@event.WithBeginDate(beginDate.HasValue ? LocalDateTime.FromDateTime(beginDate.Value.LocalDateTime) : new LocalDateTime?()));
 }