public WebHookReceberPagamentoSteps( ScenarioContext context, IntegrationTestsFixture <Startup> testsFixture) { _context = context; _testsFixture = testsFixture; }
public async Task VolunteersController_CantDelete_RemoveVolunteerAssign(UserRoleEnum role) { // Arrange IntegrationTestsFixture.SetUserContext(new User { Role = role }); var dream = _fixture.DreamBuilder().WithNewCategory().Create(); var user = _fixture.VolunteerBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Dreams.AddAsync(dream); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.AssignedDreams.AddAsync(new AssignedDreams { Dream = dream, Volunteer = user }); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); // Act var response = await Client.DeleteAsync(CreateDeleteUrl(user.UserId, dream.DreamId)); var existingAssign = await IntegrationTestsFixture.DatabaseContext.AssignedDreams.FirstOrDefaultAsync(); // Assert response.IsSuccessStatusCode.Should().BeFalse(); existingAssign.Should().NotBeNull(); }
public ProdutoIntegrationTests(IntegrationTestsFixture <StartupTests> testsFixture, ProdutoTestsFixture produtoTestsFixture) { _testsFixture = testsFixture; _produtoTestsFixture = produtoTestsFixture; _testsFixture.Client.AtribuirToken(_testsFixture.UsuarioToken); }
public async Task UserControllerUpdate_UpdateUser_IfNotNULLValue(string firstName, string lastName, string email, string brand, string phoneNumber) { var user = new User { FirstName = "FirstName", LastName = "LastName", Brand = "Brand", Email = "Email", PhoneNumber = "PhoneNumber", Role = UserRoleEnum.Volunteer }; await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(user); var data = new { userId = user.UserId, firstName, lastName, email, brand, phoneNumber }.AsJsonContent(); // Act var response = await Client.PatchAsync("/api/user", data); response.EnsureSuccessStatusCode(); var myData = await Client.GetUsers(); Assert.Single(myData.Users); Assert.Equal(user.UserId, myData.Users.First().UserId); Assert.Equal(firstName ?? user.FirstName, myData.Users.First().FirstName); Assert.Equal(lastName ?? user.LastName, myData.Users.First().LastName); Assert.Equal(email ?? user.Email, myData.Users.First().Email); Assert.Equal(brand ?? user.Brand, myData.Users.First().Brand); Assert.Equal(phoneNumber ?? user.PhoneNumber, myData.Users.First().PhoneNumber); }
public async Task Coordinator_CanSearch_AllVolunteers() { // Arrange IntegrationTestsFixture.SetUserCoordinatorContext(); IntegrationTestsFixture.DatabaseContext.Users .AddRange(Enumerable.Range(0, 30) .Select(i => new User() { FirstName = $"property_{i}", LastName = $"property_{i}", Email = $"property_{i}", Brand = $"property_{i}", PhoneNumber = $"property_{i}", Role = i < 10 ? UserRoleEnum.Volunteer : i < 20 ? UserRoleEnum.Coordinator : UserRoleEnum.Admin })); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); // Act var response = await Client.GetUsers(); // Assert Assert.NotEmpty(response.Users); Assert.Equal(10, response.Users.Count); }
public async Task UserControllerUpdate_UpdateUser_AndCanQuery(string firstName, string lastName, string email, string brand, string phoneNumber) { var user = _fixture.VolunteerBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(user); var data = new { userId = user.UserId, firstName, lastName, email, brand, phoneNumber }.AsJsonContent(); // Act var response = await Client.PatchAsync("/api/user", data); response.EnsureSuccessStatusCode(); var myData = await Client.GetUsers(); Assert.Single(myData.Users); Assert.Equal(user.UserId, myData.Users.First().UserId); Assert.Equal(firstName, myData.Users.First().FirstName); Assert.Equal(lastName, myData.Users.First().LastName); Assert.Equal(email, myData.Users.First().Email); Assert.Equal(brand, myData.Users.First().Brand); Assert.Equal(phoneNumber, myData.Users.First().PhoneNumber); }
public static Builder CreatePackage(this IntegrationTestsFixture fixture, string projectId, int componentId) { return(new Builder( fixture: fixture, projectId: projectId, componentId: componentId )); }
public SqlServerGroupMigratorServiceTests( IntegrationTestsFixture fixture, SqlServerIntegrationTestsFixture sqlFixture) : base( fixture, StorageProviders.SqlServer, sqlFixture.ConnectionStrings) { }
public async Task DreamersController_PUT_UpdateDreamer() { //Arrange var category = _fixture.DreamCategoryBuilder(10).Create(); var category2 = _fixture.DreamCategoryBuilder(15).Create(); await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category); await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category2); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var dream = new Dream { DisplayName = "T", Age = 2, DreamUrl = "https://mam-marzenie.pl/marzenie/1", Tags = "tag1", DreamCategoryId = category.DreamCategoryId }; await IntegrationTestsFixture.DatabaseContext.Dreams.AddAsync(dream); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(new User { Role = UserRoleEnum.Coordinator }); var request = new UpdateDreamRequest { DreamId = dream.DreamId, DisplayName = "Test", Age = 3, DreamUrl = "https://mam-marzenie.pl/marzenie/2", Tags = "tag1, tag2", CategoryId = category2.DreamCategoryId }; //Act var _ = await Client.PutAsync("/api/dreams", request.WithJsonContent().json).AsResponse <UpdateDreamResponse>(); IntegrationTestsFixture.SetUserContext(new User { Role = UserRoleEnum.Admin }); var queryResponse = await Client.GetDreams(); queryResponse.Should().NotBeNull(); queryResponse.Dreams.Count.Should().Be(1); queryResponse.Dreams.Should().SatisfyRespectively(x => { x.DreamId.Should().Be(dream.DreamId); x.DisplayName.Should().Be(request.DisplayName); x.Age.Should().Be(request.Age); x.DreamUrl.Should().Be(request.DreamUrl); x.Tags.Should().Be(request.Tags); x.DreamCategory.Should().NotBeNull(); x.DreamCategory.DreamCategoryId.Should().Be(request.CategoryId); }); }
public async Task DreamController_UpdateDream_AssignVolounteersAndImages(int volounteerCount) { var stepCount = 12; var category = _fixture.DreamCategoryBuilder(stepCount).Create(); var image = _fixture.ImageBuilder().Create(); var volonteers = _fixture.VolunteerBuilder().CreateMany(10); var dreamBuilder = _fixture .DreamBuilder() .WithCategory(category); dreamBuilder.WithImage(); var dream = dreamBuilder.Create(); await IntegrationTestsFixture.DatabaseContext.Dreams.AddAsync(dream); await IntegrationTestsFixture.DatabaseContext.Users.AddRangeAsync(volonteers); await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category); await IntegrationTestsFixture.DatabaseContext.Images.AddAsync(image); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(new User { Role = UserRoleEnum.Admin }); var random = new Random(); var request = _fixture .Build <UpdateDreamRequest>() .With(d => d.DreamId, dream.DreamId) .With(d => d.Age, random.Next(1, 119)) .With(d => d.CategoryId, category.DreamCategoryId) .With(d => d.DreamImageId, image.ImageId) .Without(d => d.SponsorIds) .With(d => d.VolunteerIds, () => volonteers.OrderBy(v => random.Next()).Take(volounteerCount).Select(v => v.UserId).ToArray()) .Create(); // Act await Client.PutAsync($"/api/dreams", request.AsJsonContent()).AsResponse <UpdateDreamResponse>(); var graphResponse = await Client.GetDreams(dreamId : dream.DreamId); var users = await Client.GetUsers(dream.DreamId); // Assert var apiDream = graphResponse.Dreams.Single(); apiDream.DreamId.Should().Be(dream.DreamId); apiDream.DreamImageUrl.Should().Contain(image.ImageId.ToString()); apiDream.DreamImageUrl.Should().Be($"/api/images/{image.ImageId}.png"); users.Users.Count.Should().Be(volounteerCount); }
public Builder(IntegrationTestsFixture fixture) { _fixture = fixture; _request = new CreateProjectRequest { ProjectId = $"project-{Guid.NewGuid()}", EnvironmentNames = new[] { "dev", "test", "prod" }, ComponentNames = new[] { "frontend", "backend", "other-service" } }; }
public Builder(IntegrationTestsFixture fixture, string projectId, int componentId) { _fixture = fixture; _projectId = projectId; _componentId = componentId; _request = new CreatePackageRequest { Description = $"package {Guid.NewGuid()}", VariableUpdates = null }; }
public Builder(IntegrationTestsFixture fixture, string projectId, int componentId) { _fixture = fixture; _request = new CreatePackageRequest { ProjectId = projectId, ComponentId = componentId, Description = $"package {Guid.NewGuid()}", ZipFile = TestProcessZipArchives.TestProcess, VariableUpdates = null }; }
public async Task DreamersController_POST_CreateDreamer() { // Arrange var count = 20; var stepCount = 12; var category = _fixture.DreamCategoryBuilder(stepCount).Create(); var images = _fixture.ImageBuilder().CreateMany(count); var volonteers = _fixture.VolunteerBuilder().CreateMany(10); await IntegrationTestsFixture.DatabaseContext.Users.AddRangeAsync(volonteers); await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddAsync(category); await IntegrationTestsFixture.DatabaseContext.Images.AddRangeAsync(images); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var imageIds = images.Select(i => i.ImageId).ToArray(); IntegrationTestsFixture.SetUserContext(new User { Role = UserRoleEnum.Admin }); var index = 0; var random = new Random(); var requests = _fixture .Build <AddDreamRequest>() .With(d => d.Age, random.Next(1, 119)) .With(d => d.CategoryId, category.DreamCategoryId) .With(d => d.DreamImageId, () => imageIds.ElementAt(index++)) .Without(d => d.SponsorIds) .With(d => d.VolunteerIds, () => volonteers.OrderBy(v => new Random().Next()).Take(5).Select(v => v.UserId).ToArray()) .CreateMany(count) .Select(dreamer => dreamer.WithJsonContent().json); // Act var responses = await Task.WhenAll(requests.Select(r => Client.PostAsync($"/api/dreams", r))); var graphResponse = await Client.GetDreams(); // Assert foreach (var response in responses) { response.EnsureSuccessStatusCode(); // Status Code 200-299 Assert.Equal("application/json; charset=utf-8", response.Content.Headers.ContentType.ToString()); } Assert.Equal(count, graphResponse.Dreams.Count); }
public async Task CategoriesController_AddCategoryAction_CoordinatorAndAdminCanTrigger(UserRoleEnum role, bool isPermited) { // Arrange IntegrationTestsFixture.SetUserContext(new User { Role = role }); var categoryName = _fixture.Create <string>(); // Act var response = await Client.PostAsync(ActionUrl, new { categoryName, defaultSteps = new[] { new { stepDescription = "test" } } }.WithJsonContent().json); // Assert response.IsSuccessStatusCode.Should().Be(isPermited); }
public async Task VolunteersController_Delete_FailIfNoAssign() { // Arrange IntegrationTestsFixture.SetUserCoordinatorContext(); var userId = _fixture.Create <long>(); var dreamId = _fixture.Create <long>(); // Act var response = await Client.DeleteAsync(CreateDeleteUrl(userId, dreamId)); var responseObject = await response.GetResponse <ValidationProblemDetails>(); // Assert response.IsSuccessStatusCode.Should().BeFalse(); responseObject.Errors.Should().NotBeEmpty(); }
public async Task admin_cannot_change_role_of_another_admin(UserRoleEnum toRole) { IntegrationTestsFixture.SetUserAdminContext(); var admin = _fixture.AdminBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(admin); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var response = await ChangeRole(new { userId = admin.UserId, role = (int)toRole }); _testOutputHelper.WriteLine(await response.Content.ReadAsStringAsync());; response.IsSuccessStatusCode.Should().BeFalse(); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async Task CategoriesController_GetCategories() { // Act var categories = _fixture.DreamCategoryBuilder().CreateMany(10); await IntegrationTestsFixture.DatabaseContext.DreamCategories.AddRangeAsync(categories); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(new User { Role = UserRoleEnum.Volunteer }); var response = await Client.GetAsync(ActionUrl).AsResponse <GetCategoriesResponse>(); // Arrange response.Categories.Should().HaveCount(10); }
public async Task VolunteerDreamAssign_CantCreateAssign() { // Arrange IntegrationTestsFixture.SetUserCoordinatorContext(); var json = JsonConvert.SerializeObject(new { DreamerId = 1, VolunteerId = 1 }); var data = new StringContent(json, Encoding.UTF8, "application/json"); // Act var response = await Client.PostAsync(ApiUrlPath, data); var responseObject = await response.GetResponse <ValidationProblemDetails>(); // Assert Assert.False(response.IsSuccessStatusCode); Assert.Equal(2, responseObject.Errors.Keys.Count); }
public async Task UserControllerGet_Works(int userCount, int?page, int expectedCount) { // Arrange var users = _fixture.VolunteerBuilder().CreateMany(userCount); await IntegrationTestsFixture.DatabaseContext.Users.AddRangeAsync(users); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserAdminContext(); // Act var response = await Client.GetAsync($"/api/user?page={page - 1}").AsResponse <GetUsersResponse>(); // Assert response.Users.Should().HaveCount(expectedCount); }
public async Task DreamerScontroller_GET_ByDreamId() { // Arrange var dreams = _fixture.DreamBuilder().WithNewCategory().CreateMany(10).ToList(); await IntegrationTestsFixture.DatabaseContext.Dreams.AddRangeAsync(dreams); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserAdminContext(); // Act var responses = await Task.WhenAll(dreams.Select(d => Client.GetAsync($"/api/dreams/details?dreamId={d.DreamId}").AsResponse <GetDreamResponse>())); // Assert foreach (var response in responses) { response.DisplayName.Should().NotBeNullOrEmpty(); } }
public async Task UserControllerDelete_CantDelete_Self() { // Arrange var user = _fixture.AdminBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(user); // Act var response = await DeleteUserAction(user.UserId); // Assert Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task InvitationsController_GetInvitations_OnlyPending() { // Arrange IntegrationTestsFixture.SetUserCoordinatorContext(); var invitations = _fixture.UseInvitation().WithStatus(CrossCutting.Enums.InvitationStateEnum.Pending).CreateMany(20); var invitationsAccepted = _fixture.UseInvitation().WithStatus(CrossCutting.Enums.InvitationStateEnum.Accepted).CreateMany(10); await IntegrationTestsFixture.DatabaseContext.Invitations.AddRangeAsync(invitations); await IntegrationTestsFixture.DatabaseContext.Invitations.AddRangeAsync(invitationsAccepted); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); // Act var result = await Client.GetAsync("/api/invitations").AsResponse <GetInvitationsResponse>(); // Assert result.Invitations.Should().HaveCount(20); }
public async Task UserControllerDelete_IsForbidden_IfNotAdmin(UserRoleEnum role) { // Arrange IntegrationTestsFixture.SetUserContext(new User { UserId = 10, Role = role }); var user = _fixture.VolunteerBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); // Act var response = await DeleteUserAction(user.UserId); // Assert Assert.Equal(HttpStatusCode.Forbidden, response.StatusCode); }
public async Task Volunteer_CanFilterVolounteers_AssignedToHisDreams(int dreamUsersCount, int otherUsersCount) { // Arrange var volunteerUsers = _fixture.VolunteerBuilder().CreateMany(dreamUsersCount); var otherDreamVolunteers = _fixture.VolunteerBuilder().CreateMany(otherUsersCount); var dreams = _fixture.DreamBuilder().WithNewCategory().CreateMany(2).ToList(); await IntegrationTestsFixture.DatabaseContext.Dreams .AddRangeAsync(dreams); await IntegrationTestsFixture.DatabaseContext.Users .AddRangeAsync(volunteerUsers); await IntegrationTestsFixture.DatabaseContext.Users .AddRangeAsync(otherDreamVolunteers); await IntegrationTestsFixture.DatabaseContext.AssignedDreams.AddRangeAsync(volunteerUsers.Select(u => new AssignedDreams { Volunteer = u, Dream = dreams.First() })); await IntegrationTestsFixture.DatabaseContext.AssignedDreams.AddRangeAsync(otherDreamVolunteers.Select(u => new AssignedDreams { Volunteer = u, Dream = dreams.Last() })); await IntegrationTestsFixture.DatabaseContext.AssignedDreams.AddAsync(new AssignedDreams { Volunteer = volunteerUsers.First(), Dream = dreams.Last() }); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(volunteerUsers.First()); // Act var response1 = await Client.GetUsers(dreams.First().DreamId); var response2 = await Client.GetUsers(dreams.Last().DreamId); var response3 = await Client.GetUsers(); //Assert response1.Users.Should().HaveCount(dreamUsersCount); response2.Users.Should().HaveCount(otherUsersCount + 1); response3.Users.Should().HaveCount(dreamUsersCount + otherUsersCount); }
public async Task UserControllerDelete_OnlyAdmin_CanAccess() { // Arrange IntegrationTestsFixture.SetUserAdminContext(); var user = _fixture.VolunteerBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); // Act var response = await DeleteUserAction(user.UserId); // Assert response.EnsureSuccessStatusCode(); var userExists = IntegrationTestsFixture.DatabaseContext.Users.FirstOrDefault(u => u.UserId == user.UserId); Assert.Null(userExists); }
public async Task only_admin_can_change_role(UserRoleEnum role) { var contextUser = _fixture.UserBuilder().With(x => x.Role, role) .Create(); IntegrationTestsFixture.SetUserContext(contextUser); var user = _fixture.UserBuilder() .With(x => x.Role, UserRoleEnum.Volunteer) .Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var response = await ChangeRole(new { userId = user.UserId, role = (int)UserRoleEnum.Admin }); _testOutputHelper.WriteLine(await response.Content.ReadAsStringAsync());; response.IsSuccessStatusCode.Should().BeFalse(); }
public async Task VolunteerDreamAssign_CanCreateAssign() { // Arrange IntegrationTestsFixture.SetUserCoordinatorContext(); var dream = _fixture.DreamBuilder().WithNewCategory().Create(); var user = _fixture.VolunteerBuilder().Create(); await IntegrationTestsFixture.DatabaseContext.Dreams.AddAsync(dream); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var data = new { dream.DreamId, VolunteerId = user.UserId }.WithJsonContent(); // Act var response = await Client.PostAsync(ApiUrlPath, data.json); // Assert response.EnsureSuccessStatusCode(); }
public async Task UserControllerUpdate_Works() { // Arrange var user = new User { FirstName = "FirstName", LastName = "LastName", Brand = "Brand", Email = "Email", PhoneNumber = "PhoneNumber", Role = UserRoleEnum.Volunteer }; await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); IntegrationTestsFixture.SetUserContext(user); var data = new { userId = user.UserId, firstName = "new name", emailAddress = "*****@*****.**" }.AsJsonContent(); // Act var response = await Client.PatchAsync("/api/user", data); // Assert response.EnsureSuccessStatusCode(); }
public async Task admin_can_change_user_role_from_to(UserRoleEnum from, UserRoleEnum to) { IntegrationTestsFixture.SetUserAdminContext(); var user = _fixture.UserBuilder() .With(x => x.Role, from) .Create(); await IntegrationTestsFixture.DatabaseContext.Users.AddAsync(user); await IntegrationTestsFixture.DatabaseContext.SaveChangesAsync(); var response = await ChangeRole(new { userId = user.UserId, role = (int)to }); _testOutputHelper.WriteLine(await response.Content.ReadAsStringAsync());; response.EnsureSuccessStatusCode(); var inDb = await IntegrationTestsFixture.DatabaseContext.Users.AsNoTracking().SingleAsync(x => x.UserId == user.UserId); inDb.Role.Should().Be(to); }