Exemple #1
0
        public void Ctor_withValidArgs_works(EventType type)
        {
            // arrange:
            List <object> mocks  = new List <object>();
            Username      userId = new Username("Giacomo");
            IUser         user   = MockRepository.GenerateStrictMock <IUser>();

            user.Expect(u => u.Username).Return(userId).Repeat.Once();
            mocks.Add(user);
            TrackingId   cargoId  = new TrackingId("CARGO001");
            UnLocode     location = new UnLocode("UNLOC");
            VoyageNumber voyage   = new VoyageNumber("VYG001");
            ICargo       cargo    = MockRepository.GenerateStrictMock <ICargo>();

            cargo.Expect(c => c.TrackingId).Return(cargoId).Repeat.Once();
            IDelivery delivery = MockRepository.GenerateStrictMock <IDelivery>();

            delivery.Expect(d => d.LastKnownLocation).Return(location).Repeat.Once();
            delivery.Expect(d => d.CurrentVoyage).Return(voyage).Repeat.Once();
            mocks.Add(delivery);
            cargo.Expect(c => c.Delivery).Return(delivery).Repeat.Twice();
            mocks.Add(cargo);
            DateTime completionDate = DateTime.UtcNow;

            // act:
            IEvent underTest = new Event(user, cargo, type, completionDate);

            // assert:
            Assert.AreSame(userId, underTest.User);
            Assert.AreSame(cargoId, underTest.Cargo);
            Assert.AreSame(location, underTest.Location);
            Assert.AreSame(voyage, underTest.Voyage);
            Assert.AreEqual(completionDate, underTest.Date);
            Assert.AreEqual(type, underTest.Type);
            foreach (object mock in mocks)
            {
                mock.VerifyAllExpectations();
            }
        }