public void Unload_04() { // arrange: List<object> mocks = new List<object>(); UnLocode code = new UnLocode("START"); DateTime arrival = DateTime.UtcNow; TrackingId id = new TrackingId("CARGO01"); IItinerary itinerary = MockRepository.GenerateStrictMock<IItinerary>(); itinerary.Expect(i => i.Equals(null)).IgnoreArguments().Return(false).Repeat.Any(); itinerary.Expect(i => i.FinalArrivalDate).Return(DateTime.UtcNow + TimeSpan.FromDays(1)).Repeat.Any(); itinerary.Expect(i => i.FinalArrivalLocation).Return(code).Repeat.Any(); mocks.Add(itinerary); IRouteSpecification specification = MockRepository.GenerateStrictMock<IRouteSpecification>(); specification.Expect(s => s.IsSatisfiedBy(itinerary)).Return(true).Repeat.Any(); mocks.Add(specification); CargoState previousState = MockRepository.GenerateStrictMock<CargoState>(id, specification); mocks.Add(previousState); previousState = MockRepository.GenerateStrictMock<CargoState>(previousState, itinerary); mocks.Add(previousState); previousState.Expect(s => s.LastKnownLocation).Return(code).Repeat.Any(); InPortCargo state = new InPortCargo(previousState, code, arrival); // act: Assert.Throws<ArgumentNullException>(delegate { state.Unload(null, arrival + TimeSpan.FromDays(2)); }); // assert: foreach (object mock in mocks) mock.VerifyAllExpectations(); }
public void Unload_02() { // arrange: List<object> mocks = new List<object>(); UnLocode code = new UnLocode("START"); VoyageNumber voyageNumber = new VoyageNumber("ATEST"); DateTime arrival = DateTime.UtcNow; TrackingId id = new TrackingId("CARGO01"); IItinerary itinerary = MockRepository.GenerateStrictMock<IItinerary>(); itinerary.Expect(i => i.Equals(null)).IgnoreArguments().Return(false).Repeat.Any(); itinerary.Expect(i => i.FinalArrivalDate).Return(DateTime.UtcNow + TimeSpan.FromDays(1)).Repeat.Any(); itinerary.Expect(i => i.FinalArrivalLocation).Return(code).Repeat.Any(); mocks.Add(itinerary); IRouteSpecification specification = MockRepository.GenerateStrictMock<IRouteSpecification>(); specification.Expect(s => s.IsSatisfiedBy(itinerary)).Return(true).Repeat.Any(); mocks.Add(specification); IVoyage voyage = MockRepository.GenerateStrictMock<IVoyage>(); voyage.Expect(v => v.Number).Return(voyageNumber).Repeat.Any(); voyage.Expect(v => v.LastKnownLocation).Return(code).Repeat.AtLeastOnce(); mocks.Add(voyage); CargoState previousState = MockRepository.GenerateStrictMock<CargoState>(id, specification); mocks.Add(previousState); previousState = MockRepository.GenerateStrictMock<CargoState>(previousState, itinerary); mocks.Add(previousState); previousState.Expect(s => s.LastKnownLocation).Return(code).Repeat.Any(); InPortCargo state = new InPortCargo(previousState, code, arrival); // act: CargoState newState = state.Unload(voyage, arrival + TimeSpan.FromDays(2)); // assert: Assert.AreSame(newState, state); foreach (object mock in mocks) mock.VerifyAllExpectations(); }