Пример #1
0
        public void Constructors_ConstructDto_ExpectDto()
        {
            FairyTaleDto fairyTaleDto = new FairyTaleDto(Guid.NewGuid(), "name", new Coordinate(5.23, 51.22), LocationType.FAIRYTALE);

            Assert.Equal("name", fairyTaleDto.Name);
            Assert.Equal(LocationType.FAIRYTALE, fairyTaleDto.LocationType);
            Assert.Equal(5.23, fairyTaleDto.Coordinates.Latitude);
            Assert.Equal(51.22, fairyTaleDto.Coordinates.Longitude);
        }
Пример #2
0
        public void DoActivity_LetVisitorDoActivity_ExpectTookTime()
        {
            DateTime start = DateTime.Now;
            Mock <IOptions <VisitorSettings> > settingsMock = new Mock <IOptions <VisitorSettings> >();
            VisitorSettings visitorSettings = new VisitorSettings();

            visitorSettings.FairyTaleMinVisitingSeconds = 3;
            visitorSettings.FairyTaleMaxVisitingSeconds = 5;
            settingsMock.Setup(setting => setting.Value).Returns(visitorSettings);

            Visitor      visitor = new Visitor(start, 1.73, startCoordinate, random);
            FairyTaleDto tale    = new FairyTaleDto();

            visitor.DoActivity(tale);
        }
Пример #3
0
        public void SetNewLocation_GivenVisitorHasFairyTaleAsLatestLocation_ExpectClosestRequested()
        {
            Visitor      visitor  = new Visitor();
            FairyTaleDto location = new FairyTaleDto();

            fairyTaleClientMock.Setup(mock =>
                                      mock.GetNewFairyTaleLocation(It.IsAny <Guid>(), It.IsAny <List <Guid> >())).Returns(location);
            location.LocationType = LocationType.FAIRYTALE;
            visitor.VisitedLocations.Add(DateTime.Now, location);
            VisitorFairyTaleStrategy strategy =
                new VisitorFairyTaleStrategy(eventProducerMock.Object, fairyTaleClientMock.Object);

            strategy.SetNewLocation(visitor);

            fairyTaleClientMock.Verify(client => client.GetRandomFairyTale(), Times.Never);
            fairyTaleClientMock.Verify(client => client.GetNewFairyTaleLocation(It.IsAny <Guid>(),
                                                                                It.IsAny <List <Guid> >()), Times.Once);
        }
Пример #4
0
        public void Setters_ConstructAndUseSetters_ExpectDto()
        {
            FairyTaleDto fairyTaleDto = new FairyTaleDto();

            Assert.Null(fairyTaleDto.Name);
            Assert.Equal(LocationType.FAIRYTALE, fairyTaleDto.LocationType);
            Assert.NotEqual(5.23, fairyTaleDto.Coordinates.Latitude);
            Assert.NotEqual(51.22, fairyTaleDto.Coordinates.Longitude);

            fairyTaleDto.Name         = "name";
            fairyTaleDto.Coordinates  = new Coordinate(5.23, 51.22);
            fairyTaleDto.Guid         = Guid.NewGuid();
            fairyTaleDto.LocationType = LocationType.FAIRYTALE;

            Assert.Equal("name", fairyTaleDto.Name);
            Assert.Equal(LocationType.FAIRYTALE, fairyTaleDto.LocationType);
            Assert.Equal(5.23, fairyTaleDto.Coordinates.Latitude);
            Assert.Equal(51.22, fairyTaleDto.Coordinates.Longitude);
        }
Пример #5
0
        public void StartLocationActivity_GivenCorrectData_ExpectCorrectCalls()
        {
            Visitor      visitor      = new Visitor();
            FairyTaleDto fairyTaleDto = new FairyTaleDto();

            visitor.TargetLocation = fairyTaleDto;
            VisitorFairyTaleStrategy strategy =
                new VisitorFairyTaleStrategy(eventProducerMock.Object, fairyTaleClientMock.Object);

            strategy.StartLocationActivity(visitor);
            var eventPayload = new Dictionary <string, string>
            {
                { "Visitor", visitor.Guid.ToString() },
                { "FairyTale", fairyTaleDto.Guid.ToString() }
            };

            Event producedEvent = new Event(EventType.ArrivedAtFairyTale, EventSource.Visitor, eventPayload);

            eventProducerMock.Verify(producer => producer.Produce(It.Is <Event>(a => a.Equals(producedEvent))), Times.Once);
        }
Пример #6
0
        public void NotifyOrderReady_OrderExists_ExpectVisitorIdle()
        {
            FairyTaleDto fairyTaleDto = new FairyTaleDto();

            Mock <IFairyTaleClient> fairyTaleClient = new Mock <IFairyTaleClient>();
            Mock <IRideClient>      rideClient      = new Mock <IRideClient>();
            Mock <IEventProducer>   eventProducer   = new Mock <IEventProducer>();

            fairyTaleClient.Setup(client => client.GetRandomFairyTale()).Returns(new FairyTaleDto());
            rideClient.Setup(client => client.GetRandomRide()).Returns(new RideDto());

            VisitorControl visitorControl = new VisitorControl(mediator, logger, standClient, repo.Object,
                                                               visitorMovementService.Object, locationTypeStrategyMock.Object);

            Visitor input = new Visitor();

            repo.Setup(repo => repo.AddVisitors(It.IsAny <int>())).Returns(new List <Visitor>()
            {
                input
            });
            repo.Setup(repo => repo.All()).Returns(new List <Visitor>()
            {
                input
            });
            repo.Setup(repo => repo.GetVisitor(input.Guid)).Returns(input);

            Mock <IVisitorLocationStrategy> strategyMock = new Mock <IVisitorLocationStrategy>();

            locationTypeStrategyMock.Setup(strategyMock => strategyMock.GetStrategy(It.IsAny <LocationType>()))
            .Returns(strategyMock.Object);

            Guid guid = Guid.NewGuid();

            visitorControl.AddVisitors(1);

            Visitor visitor = visitorControl.All().First();

            visitorControl.VisitorsWaitingForOrder.TryAdd(guid.ToString(), visitor.Guid);
            visitorControl.NotifyOrderReady(guid.ToString());
            Assert.True(visitor.AvailableAt <DateTime.Now && visitor.AvailableAt> DateTime.Now - TimeSpan.FromSeconds(5));
        }