예제 #1
0
        public async Task <DancerResponse> Dancing(float latitude, float longitude)
        {
            var weather = await GetWeather(latitude, longitude);


            var random      = new Random();
            var randomBirds = random.Next(100) < 10;

            var dancer = new DancerResponse()
            {
                Lat      = latitude,
                Lng      = longitude,
                HasBirds = randomBirds,
                Weather  = new WeatherResponse()
                {
                    WindDirection = WindDirection.WindDegreesToDirection(weather.Wind.Deg),
                    WindDegree    = weather.Wind.Deg,
                    WindSpeed     = weather.Wind.Speed
                },
                HasDangerDanger = IsDangerDanger(weather),
                HasNoFlyZone    = await _noFlyingBusiness.IsInNoFlyZone(latitude, longitude),
                MaxHeight       = 1000,
            };

            return(dancer);
        }
        public void GetDancer_GivenUserDoesNotExist_ReturnsActionResultWithDancerResponse()
        {
            var dancer = new Dancer
            {
                AuthenticationId = "auth_id_1"
            };

            dancer = _fixture._context.Dancers.Add(dancer).Entity;
            _fixture._context.SaveChanges();

            var expectedDancerResponse = new DancerResponse
            {
                AuthenticationId = dancer.AuthenticationId,
                Id = dancer.Id
            };

            var actionResult = _dancersController.GetDancer("invalid_id");

            Assert.IsType <NotFoundResult>(actionResult.Result);
        }
        public async Task Post_GivenUserDoesNotExist_Returns_CreatedActionResultWithNewUser()
        {
            _authorizationService.GetUserId().Returns("user_id");
            var dancerRequest = new DancerRequest();

            var expectedDancerResponse = new DancerResponse
            {
                AuthenticationId = "user_id",
                DdrCode          = "573",
                State            = "n/a"
            };

            var actionResult = await _dancersController.Post(dancerRequest);

            var createdResult = Assert.IsType <CreatedResult>(actionResult.Result);
            var id            = Guid.Parse(createdResult.Location.Substring(createdResult.Location.LastIndexOf("/") + 1));

            expectedDancerResponse.Id = id;
            var dancerResponse = Assert.IsAssignableFrom <DancerResponse>(createdResult.Value);

            Assert.Equal(expectedDancerResponse, dancerResponse);
        }
        public void GetDancer_GivenAuthIdExists_ReturnsActionResultWithDancerResponse()
        {
            var dancer = new Dancer
            {
                AuthenticationId = "auth_id_1"
            };

            dancer = _fixture._context.Dancers.Add(dancer).Entity;
            _fixture._context.SaveChanges();

            var expectedDancerResponse = new DancerResponse
            {
                AuthenticationId = dancer.AuthenticationId,
                Id = dancer.Id
            };

            var actionResult = _dancersController.GetDancer(dancer.AuthenticationId);

            var okObjectResult = Assert.IsType <OkObjectResult>(actionResult.Result);
            var dancerResponse = Assert.IsAssignableFrom <DancerResponse>(okObjectResult.Value);

            Assert.Equal(expectedDancerResponse, dancerResponse);
        }