/// <summary>
        /// Converts an OraclePermissionGeneratorDataModel.IRoleToPermissionMapCollection object to a List of OraclePermissionGeneratorWebServiceAPI.Containers.RoleToPermissionMap objects.
        /// </summary>
        /// <param name="roleToPermissionMapCollection">The IRoleToPermissionMapCollection to convert.</param>
        /// <returns>The converted object.</returns>
        public List<RoleToPermissionMap> Convert(IRoleToPermissionMapCollection roleToPermissionMapCollection)
        {
            List<RoleToPermissionMap> returnList = new List<RoleToPermissionMap>();

            foreach (IStringMapper currentStringMapper in roleToPermissionMapCollection)
            {
                RoleToPermissionMap roleToPermissionMap = new RoleToPermissionMap();
                roleToPermissionMap.Role = currentStringMapper.MappedFrom;
                roleToPermissionMap.Permission = currentStringMapper.MappedTo;
                returnList.Add(roleToPermissionMap);
            }

            return returnList;
        }
        public void SerializeListOfOracleObjectPermissionSetSuccessTests()
        {
            const String expectedSerializedList = @"[{""AddFlag"":true,""ObjectName"":""SP_INFORCE_INS"",""ObjectOwner"":""TEST_OWNER"",""ObjectPermissions"":[{""Permission"":""EXECUTE"",""Role"":""APP_ROLE""},{""Permission"":""EXECUTE"",""Role"":""GUI_ROLE""}],""ObjectType"":""Stored Procedure"",""RemoveFlag"":false},{""AddFlag"":true,""ObjectName"":""SP_INFORCE_DEL"",""ObjectOwner"":""TEST_OWNER"",""ObjectPermissions"":[{""Permission"":""EXECUTE"",""Role"":""APP_ROLE""},{""Permission"":""EXECUTE"",""Role"":""GUI_ROLE""}],""ObjectType"":""Stored Procedure"",""RemoveFlag"":false},{""AddFlag"":false,""ObjectName"":""VW_INFORCE"",""ObjectOwner"":""TEST_OWNER"",""ObjectPermissions"":[{""Permission"":""SELECT"",""Role"":""APP_ROLE""},{""Permission"":""SELECT"",""Role"":""READ_ROLE""}],""ObjectType"":""View"",""RemoveFlag"":true}]";
            
            List<OracleObjectPermissionSet> testList = new List<OracleObjectPermissionSet>();

            OracleObjectPermissionSet firstObjectPermissionSet = new OracleObjectPermissionSet();
            firstObjectPermissionSet.ObjectName = "SP_INFORCE_INS";
            firstObjectPermissionSet.ObjectType = "Stored Procedure";
            firstObjectPermissionSet.ObjectOwner = "TEST_OWNER";
            firstObjectPermissionSet.AddFlag = true;
            firstObjectPermissionSet.RemoveFlag = false;
            List<RoleToPermissionMap> firstRoleToPermissionMapList = new List<RoleToPermissionMap>();
            RoleToPermissionMap firstRoleToPermissionMapListFirstItem = new RoleToPermissionMap();
            firstRoleToPermissionMapListFirstItem.Role = "APP_ROLE";
            firstRoleToPermissionMapListFirstItem.Permission = "EXECUTE";
            RoleToPermissionMap firstRoleToPermissionMapListSecondItem = new RoleToPermissionMap();
            firstRoleToPermissionMapListSecondItem.Role = "GUI_ROLE";
            firstRoleToPermissionMapListSecondItem.Permission = "EXECUTE";
            firstRoleToPermissionMapList.Add(firstRoleToPermissionMapListFirstItem);
            firstRoleToPermissionMapList.Add(firstRoleToPermissionMapListSecondItem);
            firstObjectPermissionSet.ObjectPermissions = firstRoleToPermissionMapList;

            OracleObjectPermissionSet secondObjectPermissionSet = new OracleObjectPermissionSet();
            secondObjectPermissionSet.ObjectName = "SP_INFORCE_DEL";
            secondObjectPermissionSet.ObjectType = "Stored Procedure";
            secondObjectPermissionSet.ObjectOwner = "TEST_OWNER";
            secondObjectPermissionSet.AddFlag = true;
            secondObjectPermissionSet.RemoveFlag = false;
            List<RoleToPermissionMap> secondRoleToPermissionMapList = new List<RoleToPermissionMap>();
            RoleToPermissionMap secondRoleToPermissionMapListFirstItem = new RoleToPermissionMap();
            secondRoleToPermissionMapListFirstItem.Role = "APP_ROLE";
            secondRoleToPermissionMapListFirstItem.Permission = "EXECUTE";
            RoleToPermissionMap secondRoleToPermissionMapListSecondItem = new RoleToPermissionMap();
            secondRoleToPermissionMapListSecondItem.Role = "GUI_ROLE";
            secondRoleToPermissionMapListSecondItem.Permission = "EXECUTE";
            secondRoleToPermissionMapList.Add(secondRoleToPermissionMapListFirstItem);
            secondRoleToPermissionMapList.Add(secondRoleToPermissionMapListSecondItem);
            secondObjectPermissionSet.ObjectPermissions = secondRoleToPermissionMapList;

            OracleObjectPermissionSet thirdObjectPermissionSet = new OracleObjectPermissionSet();
            thirdObjectPermissionSet.ObjectName = "VW_INFORCE";
            thirdObjectPermissionSet.ObjectType = "View";
            thirdObjectPermissionSet.ObjectOwner = "TEST_OWNER";
            thirdObjectPermissionSet.AddFlag = false;
            thirdObjectPermissionSet.RemoveFlag = true;
            List<RoleToPermissionMap> thirdRoleToPermissionMapList = new List<RoleToPermissionMap>();
            RoleToPermissionMap thirdRoleToPermissionMapListFirstItem = new RoleToPermissionMap();
            thirdRoleToPermissionMapListFirstItem.Role = "APP_ROLE";
            thirdRoleToPermissionMapListFirstItem.Permission = "SELECT";
            RoleToPermissionMap thirdRoleToPermissionMapListSecondItem = new RoleToPermissionMap();
            thirdRoleToPermissionMapListSecondItem.Role = "READ_ROLE";
            thirdRoleToPermissionMapListSecondItem.Permission = "SELECT";
            thirdRoleToPermissionMapList.Add(thirdRoleToPermissionMapListFirstItem);
            thirdRoleToPermissionMapList.Add(thirdRoleToPermissionMapListSecondItem);
            thirdObjectPermissionSet.ObjectPermissions = thirdRoleToPermissionMapList;

            testList.Add(firstObjectPermissionSet);
            testList.Add(secondObjectPermissionSet);
            testList.Add(thirdObjectPermissionSet);

            String serializedList = testContainerObjectJsonSerializer.Serialize(testList);

            Assert.AreEqual(expectedSerializedList, serializedList);
        }