コード例 #1
0
        public void AggregatorMachine_Shipment_Moves_Aggregating()
        {
            var    machine = new AggregatorMachine();
            IEvent e       = new ShipmentEvent {
                Data = "world!"
            };

            machine.MoveNext(e);
            Assert.Equal(AggregatorState.Aggregating, machine.CurrentState);
        }
コード例 #2
0
        public void AggregatorMachine_OnHand_Shipment_Moves_Aggregating()
        {
            var    machine     = new AggregatorMachine();
            IEvent onHandEvent = new OnHandEvent {
                Data = "Hello "
            };
            IEvent shipmentEvent = new ShipmentEvent {
                Data = "world!"
            };

            machine.MoveNext(onHandEvent);
            machine.MoveNext(shipmentEvent);
            Assert.Equal(AggregatorState.Resolved, machine.CurrentState);
        }
コード例 #3
0
        public ShipmentTransactionBuilder Event(string eventTypeCode)
        {
            var dbShpimentEvent = new ShipmentEvent()
            {
                ShipmentTransaction         = m_shipmentTransaction,
                EventTypeCode               = eventTypeCode,
                EventDateTimeUtc            = m_utcNow,
                ProcessingStatusCode        = EventProcessingStatusCodes.Pending,
                ProcessingStatusDateTimeUtc = m_utcNow
            };

            m_shipmentTransaction.ShipmentEvents.Add(dbShpimentEvent);

            return(this);
        }
コード例 #4
0
        public void AggregatorMachine_Resolve_Moves_From_Resolved_Error()
        {
            var    machine     = new AggregatorMachine();
            IEvent onHandEvent = new OnHandEvent {
                Data = "Hello "
            };
            IEvent shipmentEvent = new ShipmentEvent {
                Data = "world!"
            };
            IEvent resolveEvent = new ResolveEvent {
                Data = "Hello world?"
            };

            machine.MoveNext(onHandEvent);
            machine.MoveNext(shipmentEvent);
            Assert.Throws <Exception>(() => machine.MoveNext(resolveEvent));
        }