public void CreateCompanyStruture_When_Send_Invalid_Manager_5_Expect_Error_Message()
        {
            //Arrange
            var input = new List <string>()
            {
                "6",
                "A F",
                "A B",
                "A C E",
                "A",
                "D",
                "A C",
                "A B",
                "1",
                "1",
                "1",
                "1",
                "1",
                "2"
            };

            var structureService = new StructureService();

            //Act
            var result = Assert.Throws <Exception>(() => structureService.CreateCompanyStruture(input));

            //Assert
            result.ShouldBeOfType <Exception>();
            result.Message.ShouldBe(ErrorMessage.CEONoMember);
        }
        public void CreateCompanyStruture_When_Send_Not_fix_Quatity_Expect_Error_Message()
        {
            //Arrange
            var input = new List <string>()
            {
                "8",
                "A F",
                "A B",
                "A C E",
                "A",
                "D",
                "A C",
                "A B",
                "CEO",
                "CEO",
                "1",
                "1",
                "1",
                "2"
            };

            var structureService = new StructureService();

            //Act
            var result = Assert.Throws <Exception>(() => structureService.CreateCompanyStruture(input));

            //Assert
            result.ShouldBeOfType <Exception>();
            result.Message.ShouldBe(ErrorMessage.QuantityNotFix);
        }
        public void CreateCompanyStruture_When_Send_Out_Of_Range_Permission_Expect_Error_Message()
        {
            //Arrange
            var input = new List <string>()
            {
                "6",
                "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 O1 P1 Q1 R1 S1 T1 U1 V1 W1 X1 Y1 Z1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 K2 L2 M2 N2 O2 P2 Q2 R2 S2 T2 U2 V2 W2 X2 Y2 Z2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 O3 P3 Q3 R3 S3 T3 U3 V3 W3 X3 Y3 Z3",
                "A B",
                "A C E",
                "A",
                "D",
                "A C",
                "A B",
                "CEO",
                "CEO",
                "1",
                "1",
                "1",
                "2"
            };

            var structureService = new StructureService();

            //Act
            var result = Assert.Throws <Exception>(() => structureService.CreateCompanyStruture(input));

            //Assert
            result.ShouldBeOfType <Exception>();
            result.Message.ShouldBe(ErrorMessage.PermissionOutOfRange);
        }
Esempio n. 4
0
        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 CreateCompanyStruture_When_Send_Corrected_List_With_4_Level_Expect_Ok()
        {
            //Arrange
            var input = new List <string>()
            {
                "6",
                "A F",
                "A B",
                "A C E",
                "A",
                "D",
                "A C",
                "A B",
                "CEO",
                "CEO",
                "1",
                "1",
                "2",
                "3"
            };

            var structureService = new StructureService();

            //Act
            var result = structureService.CreateCompanyStruture(input);

            //Assert
            result.ShouldBeOfType <User[]>();
            result.ShouldNotBeEmpty();
            result.Length.ShouldBe(7);
            result.ShouldAllBe(x => x.FullPermissions == null);

            result[0].MemberIndex.Count.ShouldBe(2);
            result[0].MemberIndex[0].ShouldBe(1);
            result[0].MemberIndex[1].ShouldBe(2);
            result[0].Permissions.Count.ShouldBe(2);
            result[0].Permissions[0].ShouldBe("A");
            result[0].Permissions[1].ShouldBe("F");

            result[1].MemberIndex.Count.ShouldBe(2);
            result[1].MemberIndex[0].ShouldBe(3);
            result[1].MemberIndex[1].ShouldBe(4);
            result[1].Permissions.Count.ShouldBe(2);
            result[1].Permissions[0].ShouldBe("A");
            result[1].Permissions[1].ShouldBe("B");

            result[2].MemberIndex.Count.ShouldBe(1);
            result[2].MemberIndex[0].ShouldBe(5);
            result[2].Permissions.Count.ShouldBe(3);
            result[2].Permissions[0].ShouldBe("A");
            result[2].Permissions[1].ShouldBe("C");
            result[2].Permissions[2].ShouldBe("E");

            result[3].MemberIndex.Count.ShouldBe(1);
            result[3].MemberIndex[0].ShouldBe(6);
            result[3].Permissions.Count.ShouldBe(1);
            result[3].Permissions[0].ShouldBe("A");

            result[4].MemberIndex.Count.ShouldBe(0);
            result[4].Permissions.Count.ShouldBe(1);
            result[4].Permissions[0].ShouldBe("D");

            result[5].MemberIndex.Count.ShouldBe(0);
            result[5].Permissions.Count.ShouldBe(2);
            result[5].Permissions[0].ShouldBe("A");
            result[5].Permissions[1].ShouldBe("C");

            result[6].MemberIndex.Count.ShouldBe(0);
            result[6].Permissions.Count.ShouldBe(2);
            result[6].Permissions[0].ShouldBe("A");
            result[6].Permissions[1].ShouldBe("B");
        }