示例#1
0
        public async Task CreateAttractionCategory_ShouldReturnSuccessWithCreatedData()
        {
            var client = _factory.GetClient();

            var token = ApiTokenHelper.GenerateFakeToken();

            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");

            var command = new CreateAttractionCategoryCommand
            {
                Name = "Fountain"
            };

            var content  = Utilities.GetRequestContent(command);
            var response = await client.PostAsync($"/attractioncategories", content);

            response.EnsureSuccessStatusCode();

            var result = await Utilities.GetResponseContent <Application.Features.AttractionCategories.Commands.CreateAttractionCategory.AttractionCategoryDto>(response);

            result.Should().BeOfType(typeof(Application.Features.AttractionCategories.Commands.CreateAttractionCategory.AttractionCategoryDto));
            result.Should().NotBeNull();
            response.StatusCode.Should().Be(HttpStatusCode.Created);
            response.Headers.Location.LocalPath.Should().Be($"/AttractionCategories/{result.Id}");
        }
        public async Task CreateCity_ShouldReturnSuccessWithCreatedData()
        {
            var client = _factory.GetClient();

            var token = ApiTokenHelper.GenerateFakeToken();

            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");

            var command = new CreateCityCommand
            {
                Name      = "Venice",
                CountryId = Guid.Parse("{3ae4e108-e2df-4893-958a-2d76ab89b9dc}")
            };

            var content  = Utilities.GetRequestContent(command);
            var response = await client.PostAsync($"/cities", content);

            response.EnsureSuccessStatusCode();

            var result = await Utilities.GetResponseContent <Application.Features.Cities.Commands.CreateCity.CityDto>(response);

            result.Should().BeOfType(typeof(Application.Features.Cities.Commands.CreateCity.CityDto));
            result.Should().NotBeNull();
            response.StatusCode.Should().Be(HttpStatusCode.Created);
            response.Headers.Location.LocalPath.Should().Be($"/Cities/{result.CityId}");
        }
        public async Task CreateAttraction_ShouldReturnSuccessWithCreatedData()
        {
            var client = _factory.GetClient();

            var token = ApiTokenHelper.GenerateFakeToken();

            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");

            var command = new CreateAttractionCommand
            {
                Name                 = "Pantheon",
                Date                 = "113–125 AD",
                Author               = "Apollodoros",
                Description          = "The building is cylindrical with a portico of large granite Corinthian columns (eight in the first rank and two groups of four behind) under a pediment.",
                AttractionCategoryId = Guid.Parse("{7e12db9e-5648-4385-a9dc-abe24f1fbc4b}"),
                IsFree               = true,
                CityId               = Guid.Parse("{b3ec95dd-c424-4a2b-a329-50e6bdfff8b8}"),
            };

            var content  = Utilities.GetRequestContent(command);
            var response = await client.PostAsync($"/attractions", content);

            response.EnsureSuccessStatusCode();

            var result = await Utilities.GetResponseContent <AttractionDto>(response);

            result.Should().BeOfType(typeof(AttractionDto));
            result.Should().NotBeNull();
            response.StatusCode.Should().Be(HttpStatusCode.Created);
            response.Headers.Location.LocalPath.Should().Be($"/Attractions/{result.AttractionId}");
        }
        public async Task ReturnsNotFoundGivenInvalidIdAndAdminUserToken()
        {
            var adminToken = ApiTokenHelper.GetAdminUserToken();

            Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
            var response = await Client.DeleteAsync("api/catalog-items/0");

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
        }
        public async Task ReturnsSuccessGivenValidIdAndAdminUserToken()
        {
            var adminToken = ApiTokenHelper.GetAdminUserToken();

            Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
            var response = await Client.DeleteAsync("api/catalog-items/12");

            response.EnsureSuccessStatusCode();
            var stringResponse = await response.Content.ReadAsStringAsync();

            var model = stringResponse.FromJson <DeleteCatalogItemResponse>();

            Assert.Equal("Deleted", model.Status);
        }
示例#6
0
        public async Task ReturnsItemGivenValidId()
        {
            var token = ApiTokenHelper.getToken();

            Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
            var response = await Client.GetAsync("api/employee");

            response.EnsureSuccessStatusCode();

            var stringResponse = await response.Content.ReadAsStringAsync();

            var result = Newtonsoft.Json.JsonConvert.DeserializeObject <DescriptiveResponse <List <Employee> > >(stringResponse);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
示例#7
0
        public static string ValidateAccessToken()
        {
            var currentDate = DateTime.Now;

            if (AppSettingsHelper.IsAuthAccessTokenExpirationSet)
            {
                var authAccessTokenExpiration = AppSettingsHelper.AuthAccessTokenExpiration;

                if (currentDate > authAccessTokenExpiration)
                {
                    var result = ApiTokenHelper.GetAccessToken(AppSettingsHelper.AuthUsername, AppSettingsHelper.AuthPassPhrase);
                    if (result != null && !string.IsNullOrEmpty(result.access_token))
                    {
                        AppSettingsHelper.AuthAccessToken = result.access_token;
                    }
                }
            }
            return(AppSettingsHelper.AuthAccessToken);
        }
示例#8
0
        public async Task ReturnsSuccessGivenValidNewItemAndAdminUserToken()
        {
            var jsonContent = GetValidNewItemJson();
            var adminToken  = ApiTokenHelper.GetAdminUserToken();

            Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);
            var response = await Client.PostAsync("api/foodproduct", jsonContent);

            response.EnsureSuccessStatusCode();
            var stringResponse = await response.Content.ReadAsStringAsync();

            var model = stringResponse.FromJson <CreateFoodProductResponse>();

            Assert.Equal(_name, model.FoodProduct.Name);
            Assert.Equal(_unitOfMeasureId, model.FoodProduct.UnitOfMeasureId);
            Assert.Equal(_calories, model.FoodProduct.Calories);
            Assert.Equal(_protein, model.FoodProduct.Protein);
            Assert.Equal(_carbohydrates, model.FoodProduct.Carbohydrates);
            Assert.Equal(_fats, model.FoodProduct.Fats);
        }
示例#9
0
        public async Task CreateNewExpression()
        {
            var jsonContent = GetValidNewExpressionJson();
            var adminToken  = ApiTokenHelper.GetAdminUserToken();

            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", adminToken);

            var response = await _client.PostAsync($"/api/expressions", jsonContent);

            response.EnsureSuccessStatusCode();
            var stringResponse = await response.Content.ReadAsStringAsync();

            var result = JsonConvert.DeserializeObject <CreateExpressionResult>(stringResponse);

            Assert.NotNull(result);
            Assert.Equal(_title, result.Title);
            Assert.Equal(_pattern, result.Pattern);
            Assert.Equal(_description, result.Description);
            Assert.Equal(_authorId, result.AuthorId);
        }