示例#1
0
        public async Task Should_Return_BadRequest(string name, string version, string userId)
        {
            var model = new CreateProjectRouteInput(name, 0);

            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri("/api/projects", UriKind.Relative),
                Content    = new StringContent(JsonSerializer.Serialize(model), Encoding.UTF8, "application/json")
            };

            request.Headers.Add("test-user", userId);

            var response = await _fixture.Client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);

            Snapshot.Match(response.ReasonPhrase, $"{nameof(CreateProjectTests)}.{nameof(Should_Return_BadRequest)}.{version}");
        }
示例#2
0
        public async Task Should_Return_Created()
        {
            using var scope   = _fixture.Provider.CreateScope();
            using var context = scope.ServiceProvider.GetRequiredService <RatDbContext>();
            var projectType = await context.ProjectTypes.FirstOrDefaultAsync(x => x.Name == "js");

            var model = new CreateProjectRouteInput("Rat Api", projectType.Id);

            var response = await _fixture.Client.PostAsync(
                "/api/projects",
                new StringContent(JsonSerializer.Serialize(model), Encoding.UTF8, "application/json"));

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);

            var contentStream = await response.Content.ReadAsStreamAsync();

            var content = await JsonSerializer.DeserializeAsync <CreateProjectRouteOutput>(contentStream, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });

            Assert.True(content.Id > 0);
        }
示例#3
0
        public async Task Should_Return_Forbidden()
        {
            using var scope   = _fixture.Provider.CreateScope();
            using var context = scope.ServiceProvider.GetRequiredService <RatDbContext>();
            var projectType = await context.ProjectTypes.FirstOrDefaultAsync(x => x.Name == "js");

            var model = new CreateProjectRouteInput("Rat Api", projectType.Id);

            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = new Uri("/api/projects", UriKind.Relative),
                Content    = new StringContent(JsonSerializer.Serialize(model), Encoding.UTF8, "application/json")
            };

            request.Headers.Add("test-user", "null");

            var response = await _fixture.Client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

            Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode);
        }