Exemple #1
0
        public async Task GetRole()
        {
            var options = TestHelper.GetDbContext("GetRole");

            //Given
            var role1 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_1", Description = "Role 1", ApplicationId = Guid.NewGuid()
            };
            var role2 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_2", Description = "Role 2", ApplicationId = Guid.NewGuid()
            };
            var role3 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_3", Description = "Role 3", ApplicationId = Guid.NewGuid()
            };

            var roleToUseCase1 = new RoleToUseCaseEntity {
                RoleId = role1.Id, UseCaseId = "uc1"
            };
            var roleToUseCase2 = new RoleToUseCaseEntity {
                RoleId = role1.Id, UseCaseId = "uc2"
            };

            var roleToUseCase3 = new RoleToUseCaseEntity {
                RoleId = role2.Id, UseCaseId = "uc3"
            };

            using (var context = new DataContext(options))
            {
                context.Roles.Add(role3);
                context.Roles.Add(role1);
                context.Roles.Add(role2);

                context.RoleToUseCase.Add(roleToUseCase1);
                context.RoleToUseCase.Add(roleToUseCase2);
                context.RoleToUseCase.Add(roleToUseCase3);

                context.SaveChanges();
            }

            using (var context = new DataContext(options))
            {
                var service = new RoleService(context);

                //When
                var actual = await service.GetRole(role1.Id);

                //Then
                Assert.Equal(role1.Id, actual.Id);
                Assert.Equal(role1.Name, actual.Name);
                Assert.Equal(role1.Description, actual.Description);
                Assert.Equal(role1.ApplicationId, actual.ApplicationId);
                Assert.Equal(2, actual.UseCaseIds.Count());
                Assert.Equal("uc1", actual.UseCaseIds.ToArray()[0]);
                Assert.Equal("uc2", actual.UseCaseIds.ToArray()[1]);
            }
        }
Exemple #2
0
        public async Task HasUseCase_DoesHave()
        {
            var options = TestHelper.GetDbContext("HasUseCase_DoesHave");

            //Given
            var role1 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_1"
            };
            var role2 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_2"
            };

            var useCase = new UseCaseEntity {
                Id = "usecase_1"
            };

            var roleToUseCase = new RoleToUseCaseEntity {
                RoleId = role2.Id, UseCaseId = useCase.Id
            };

            using (var context = new DataContext(options))
            {
                context.Roles.Add(role1);
                context.Roles.Add(role2);

                context.UseCase.Add(useCase);

                context.RoleToUseCase.Add(roleToUseCase);

                context.SaveChanges();
            }

            using (var context = new DataContext(options))
            {
                var service = new RoleService(context);

                //When
                var actual = await service.HasUseCase(new List <string>() { role2.Name }, new List <string>() { useCase.Id });

                //Then
                Assert.True(actual);
            }
        }
        public async Task GetUseCases_ForRoles()
        {
            var options = TestHelper.GetDbContext("GetUseCases_ForRoles");

            //Given
            var uc1 = new UseCaseEntity {
                Id = "uc_1", Name = "UseCase 1", ApplicationId = Guid.NewGuid()
            };
            var uc2 = new UseCaseEntity {
                Id = "uc_2", Name = "UseCase 2", ApplicationId = Guid.NewGuid()
            };
            var uc3 = new UseCaseEntity {
                Id = "uc_3", Name = "UseCase 3", ApplicationId = Guid.NewGuid()
            };
            var uc4 = new UseCaseEntity {
                Id = "uc_4", Name = "UseCase 4", ApplicationId = Guid.NewGuid()
            };

            var role1 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_1", Description = "Role 1", ApplicationId = Guid.NewGuid()
            };
            var role2 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_2", Description = "Role 2", ApplicationId = Guid.NewGuid()
            };
            var role3 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "role_3", Description = "Role 3", ApplicationId = Guid.NewGuid()
            };

            var rtuc1 = new RoleToUseCaseEntity {
                UseCaseId = "uc_1", RoleId = role1.Id
            };
            var rtuc2 = new RoleToUseCaseEntity {
                UseCaseId = "uc_2", RoleId = role2.Id
            };
            var rtuc3 = new RoleToUseCaseEntity {
                UseCaseId = "uc_3", RoleId = role3.Id
            };
            var rtuc4 = new RoleToUseCaseEntity {
                UseCaseId = "uc_1", RoleId = role3.Id
            };
            var rtuc5 = new RoleToUseCaseEntity {
                UseCaseId = "uc_4", RoleId = role2.Id
            };

            using (var context = new DataContext(options))
            {
                context.UseCase.Add(uc1);
                context.UseCase.Add(uc3);
                context.UseCase.Add(uc2);
                context.UseCase.Add(uc4);

                context.Roles.Add(role1);
                context.Roles.Add(role3);
                context.Roles.Add(role2);

                context.RoleToUseCase.Add(rtuc1);
                context.RoleToUseCase.Add(rtuc3);
                context.RoleToUseCase.Add(rtuc2);
                context.RoleToUseCase.Add(rtuc5);
                context.RoleToUseCase.Add(rtuc4);

                context.SaveChanges();
            }

            using (var context = new DataContext(options))
            {
                var service = new UseCaseService(context);

                //When
                var list = await service.GetUseCases(new List <string>() { "role_1", "role_3" });

                //Then
                Assert.Equal(2, list.Count);

                var actual1 = list[0];
                Assert.Equal(uc1.Id, actual1);

                var actual2 = list[1];
                Assert.Equal(uc3.Id, actual2);
            }
        }
Exemple #4
0
        public async Task UpdateRole()
        {
            var options = TestHelper.GetDbContext("UpdateRole");

            //Given
            var role1 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "Role 1", Description = "Role 1 Desc", ApplicationId = Guid.NewGuid()
            };
            var ru1 = new RoleToUseCaseEntity {
                RoleId = role1.Id, UseCaseId = "uc1"
            };

            var role2 = new RoleEntity {
                Id = Guid.NewGuid(), Name = "Role 2", Description = "Role 2 Desc", ApplicationId = Guid.NewGuid()
            };
            var ru2 = new RoleToUseCaseEntity {
                RoleId = role2.Id, UseCaseId = "uc2"
            };

            using (var context = new DataContext(options))
            {
                context.Roles.Add(role1);
                context.RoleToUseCase.Add(ru1);

                context.Roles.Add(role2);
                context.RoleToUseCase.Add(ru2);

                context.SaveChanges();
            }

            var role = new RoleEdit()
            {
                Id            = role2.Id,
                Name          = "Branch 2 - updated",
                Description   = "Branch 2 Desc - updated",
                ApplicationId = Guid.NewGuid(),
                UseCaseIds    = new List <string>()
                {
                    "uc4", "uc5"
                }
            };

            using (var context = new DataContext(options))
            {
                var service = new RoleService(context);

                //When
                var result = await service.UpdateRole(role);

                //Then
                Assert.True(result.Success);

                var actual = await context.Roles.FindAsync(role.Id);

                Assert.Equal(role.Name, actual.Name);
                Assert.Equal(role.Description, actual.Description);
                Assert.Equal(role.ApplicationId, actual.ApplicationId);

                var roleToUseCases = await context.RoleToUseCase.Where(r => r.RoleId == actual.Id).ToListAsync();

                Assert.Equal(2, roleToUseCases.Count);
                Assert.Equal("uc4", roleToUseCases[0].UseCaseId);
                Assert.Equal("uc5", roleToUseCases[1].UseCaseId);
            }
        }