static void Main(string[] args) { var input = new List<string>(); //Read input Console.WriteLine("Please insert input (input exit for end of file):"); while (true) { var line = Console.ReadLine(); if (string.IsNullOrWhiteSpace(line) || line.Equals("Exit")) { break; } input.Add(line); } //Create array of users and get all permission var structureService = new StructureService(); try { var inputs = structureService.SeparateUsersAndQueries(input); var company = structureService.CreateCompanyStruture(inputs.Item1); var usersPermission = structureService.GetPermissionsOfCompany(company); var queriesOutput = structureService.ExecuteQueried(company, inputs.Item2); usersPermission.AddRange(queriesOutput); //Display output Console.WriteLine("Output as below:"); foreach (var line in usersPermission) { Console.WriteLine(line); } } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadLine(); }
public void ExecuteQueried_When_Send_Missing_Query_3_Expect_Ok() { //Arrange var users = new User[] { new User() { FullPermissions = new List <string> { "A", "B", "C", "D", "E", "F" }, MemberIndex = new List <int> { 1, 2 }, Permissions = new List <string> { "A", "F" } }, new User() { FullPermissions = new List <string> { "A", "B", "C", "D" }, MemberIndex = new List <int> { 3, 4, 5 }, Permissions = new List <string> { "A", "B" } }, new User() { FullPermissions = new List <string> { "A", "B", "C", "E" }, MemberIndex = new List <int> { 6 }, Permissions = new List <string> { "A", "C", "E" } }, new User() { FullPermissions = new List <string> { "A" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A" } }, new User() { FullPermissions = new List <string> { "D" }, MemberIndex = new List <int>(), Permissions = new List <string> { "D" } }, new User() { FullPermissions = new List <string> { "A", "C" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A", "C" } }, new User() { FullPermissions = new List <string> { "A", "B" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A", "B" } }, }; //Arrange var queries = new string[] { "ADD 2 X", "QUERY 2", "QUERY A", "REMOVE 2 X", "QUERY 2", "QUERY CEO" }; var structureService = new StructureService(); //Act var result = Assert.Throws <Exception>(() => structureService.ExecuteQueried(users, queries)); //Assert result.ShouldBeOfType <Exception>(); result.Message.ShouldBe(ErrorMessage.UserInvalid); }
public void ExecuteQueried_When_Send_Corrected_Queries_Expect_Ok() { //Arrange var users = new User[] { new User() { FullPermissions = new List <string> { "A", "B", "C", "D", "E", "F" }, MemberIndex = new List <int> { 1, 2 }, Permissions = new List <string> { "A", "F" } }, new User() { FullPermissions = new List <string> { "A", "B", "C", "D" }, MemberIndex = new List <int> { 3, 4, 5 }, Permissions = new List <string> { "A", "B" } }, new User() { FullPermissions = new List <string> { "A", "B", "C", "E" }, MemberIndex = new List <int> { 6 }, Permissions = new List <string> { "A", "C", "E" } }, new User() { FullPermissions = new List <string> { "A" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A" } }, new User() { FullPermissions = new List <string> { "D" }, MemberIndex = new List <int>(), Permissions = new List <string> { "D" } }, new User() { FullPermissions = new List <string> { "A", "C" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A", "C" } }, new User() { FullPermissions = new List <string> { "A", "B" }, MemberIndex = new List <int>(), Permissions = new List <string> { "A", "B" } }, }; //Arrange var queries = new string[] { "ADD 2 X", "QUERY 2", "QUERY CEO", "REMOVE 2 X", "QUERY 2", "QUERY CEO" }; var structureService = new StructureService(); //Act var result = structureService.ExecuteQueried(users, queries); //Assert result.ShouldBeOfType <List <string> >(); result.ShouldNotBeEmpty(); result.Count.ShouldBe(4); result[0].ShouldBe("A, B, C, E, X"); result[1].ShouldBe("A, B, C, D, E, F, X"); result[2].ShouldBe("A, B, C, E"); result[3].ShouldBe("A, B, C, D, E, F"); }