using OSGeo.MapGuide.Test.Common; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OSGeo.MapGuide.Test.Operations { public interface IMapGuideSession { string SessionID { get; set; } } public class CreateSession : SiteServiceOperationExecutor { private IMapGuideSession _session; public CreateSession(MgSite site, string unitTestVm, IMapGuideSession session) : base(site, unitTestVm) { _session = session; } public override TestResult Execute(int paramSetId) { try { var user = new MgUserInformation(); user.SetMgUsernamePassword("Administrator", "admin"); user.SetLocale("en"); var site = new MgSite(); site.Open(user); string session = site.CreateSession(); _session.SessionID = session; site.Close(); return new TestResult(session, "text/plain"); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class DestroySession : SiteServiceOperationExecutor { public DestroySession(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { //This is what PHP one is giving us return new TestResult("Not Implemented Yet", "text/plain"); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class GetUserForSession : SiteServiceOperationExecutor { private IMapGuideSession _session; public GetUserForSession(MgSite site, string unitTestVm, IMapGuideSession session) : base(site, unitTestVm) { _session = session; } public override TestResult Execute(int paramSetId) { try { var site = new MgSite(); var user = new MgUserInformation(); user.SetMgSessionId(_session.SessionID ?? ""); site.Open(user); var userId = site.GetUserForSession(); site.Close(); return new TestResult(userId, "text/plain"); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } /* public class GetSiteServerAddress : SiteServiceOperationExecutor { public GetSiteServerAddress(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var result = _site.GetCurrentSiteAddress(); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } */ public class EnumerateUsers : SiteServiceOperationExecutor { public EnumerateUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUP", param); _unitTestVm.ReadParameterValue(paramSetId, "ROLE", param); _unitTestVm.ReadParameterValue(paramSetId, "INCLUDEGROUPS", param); MgByteReader reader = null; if (param["ROLE"] != null) { reader = _site.EnumerateUsers(param["GROUP"] ?? "", param["ROLE"] ?? "", (param["INCLUDEGROUPS"] == "1")); } else { reader = _site.EnumerateUsers(param["GROUP"] ?? ""); } return TestResult.FromByteReader(reader); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class AddUser : SiteServiceOperationExecutor { public AddUser(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USERID", param); _unitTestVm.ReadParameterValue(paramSetId, "USERNAME", param); _unitTestVm.ReadParameterValue(paramSetId, "PASSWORD", param); _unitTestVm.ReadParameterValue(paramSetId, "DESCRIPTION", param); _site.AddUser(param["USERID"], param["USERNAME"], param["PASSWORD"], param["DESCRIPTION"]); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class UpdateUser : SiteServiceOperationExecutor { public UpdateUser(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USERID", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWUSERID", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWUSERNAME", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWPASSWORD", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWDESCRIPTION", param); _site.UpdateUser(param["USERID"], param["NEWUSERID"], param["NEWUSERNAME"], param["NEWPASSWORD"], param["NEWDESCRIPTION"]); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class DeleteUsers : SiteServiceOperationExecutor { public DeleteUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USERS", param); MgStringCollection users = CommonUtility.StringToMgStringCollection(param["USERS"]); _site.DeleteUsers(users); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class GrantRoleMembershipsToUsers : SiteServiceOperationExecutor { public GrantRoleMembershipsToUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "ROLES", param); _unitTestVm.ReadParameterValue(paramSetId, "USERS", param); MgStringCollection roles = CommonUtility.StringToMgStringCollection(param["ROLES"]); MgStringCollection users = CommonUtility.StringToMgStringCollection(param["USERS"]); _site.GrantRoleMembershipsToUsers(roles, users); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class RevokeRoleMembershipsFromUsers : SiteServiceOperationExecutor { public RevokeRoleMembershipsFromUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "ROLES", param); _unitTestVm.ReadParameterValue(paramSetId, "USERS", param); MgStringCollection roles = CommonUtility.StringToMgStringCollection(param["ROLES"]); MgStringCollection users = CommonUtility.StringToMgStringCollection(param["USERS"]); _site.RevokeRoleMembershipsFromUsers(roles, users); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class GrantGroupMembershipsToUsers : SiteServiceOperationExecutor { public GrantGroupMembershipsToUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUPS", param); _unitTestVm.ReadParameterValue(paramSetId, "USERS", param); MgStringCollection groups = CommonUtility.StringToMgStringCollection(param["GROUPS"]); MgStringCollection users = CommonUtility.StringToMgStringCollection(param["USERS"]); _site.GrantGroupMembershipsToUsers(groups, users); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class RevokeGroupMembershipsFromUsers : SiteServiceOperationExecutor { public RevokeGroupMembershipsFromUsers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUPS", param); _unitTestVm.ReadParameterValue(paramSetId, "USERS", param); MgStringCollection groups = CommonUtility.StringToMgStringCollection(param["GROUPS"]); MgStringCollection users = CommonUtility.StringToMgStringCollection(param["USERS"]); _site.RevokeGroupMembershipsFromUsers(groups, users); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class EnumerateGroups : SiteServiceOperationExecutor { public EnumerateGroups(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USER", param); _unitTestVm.ReadParameterValue(paramSetId, "ROLE", param); MgByteReader reader = _site.EnumerateGroups(param["USER"] ?? "", param["ROLE"] ?? ""); return TestResult.FromByteReader(reader); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class EnumerateGroups2 : SiteServiceOperationExecutor { public EnumerateGroups2(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USER", param); _unitTestVm.ReadParameterValue(paramSetId, "LOGIN", param); _unitTestVm.ReadParameterValue(paramSetId, "PASSWORD", param); var userInfo = new MgUserInformation(); userInfo.SetMgUsernamePassword(param["LOGIN"], param["PASSWORD"]); userInfo.SetLocale("en"); var site = new MgSite(); site.Open(userInfo); MgByteReader reader = site.EnumerateGroups(param["USER"]); site.Close(); return TestResult.FromByteReader(reader); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class EnumerateRoles2 : SiteServiceOperationExecutor { public EnumerateRoles2(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USER", param); _unitTestVm.ReadParameterValue(paramSetId, "LOGIN", param); _unitTestVm.ReadParameterValue(paramSetId, "PASSWORD", param); var userInfo = new MgUserInformation(); userInfo.SetMgUsernamePassword(param["LOGIN"], param["PASSWORD"]); userInfo.SetLocale("en"); var site = new MgSite(); site.Open(userInfo); MgStringCollection roles = site.EnumerateRoles(param["USER"]); site.Close(); return new TestResult(CommonUtility.MgStringCollectionToString(roles), "text/plain"); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class AddGroup : SiteServiceOperationExecutor { public AddGroup(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUP", param); _unitTestVm.ReadParameterValue(paramSetId, "DESCRIPTION", param); _site.AddGroup(param["GROUP"] ?? "", param["DESCRIPTION"] ?? ""); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class UpdateGroup : SiteServiceOperationExecutor { public UpdateGroup(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUP", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWGROUP", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWDESCRIPTION", param); _site.UpdateGroup(param["GROUP"] ?? "", param["NEWGROUP"] ?? "", param["NEWDESCRIPTION"] ?? ""); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class DeleteGroups : SiteServiceOperationExecutor { public DeleteGroups(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "GROUPS", param); MgStringCollection groups = CommonUtility.StringToMgStringCollection(param["GROUPS"]); _site.DeleteGroups(groups); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class GrantRoleMembershipsToGroups : SiteServiceOperationExecutor { public GrantRoleMembershipsToGroups(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "ROLES", param); _unitTestVm.ReadParameterValue(paramSetId, "GROUPS", param); MgStringCollection roles = CommonUtility.StringToMgStringCollection(param["ROLES"]); MgStringCollection groups = CommonUtility.StringToMgStringCollection(param["GROUPS"]); _site.GrantRoleMembershipsToGroups(roles, groups); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class RevokeRoleMembershipsFromGroups : SiteServiceOperationExecutor { public RevokeRoleMembershipsFromGroups(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "ROLES", param); _unitTestVm.ReadParameterValue(paramSetId, "GROUPS", param); MgStringCollection roles = CommonUtility.StringToMgStringCollection(param["ROLES"]); MgStringCollection groups = CommonUtility.StringToMgStringCollection(param["GROUPS"]); _site.RevokeRoleMembershipsFromGroups(roles, groups); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class EnumerateRoles : SiteServiceOperationExecutor { public EnumerateRoles(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "USER", param); _unitTestVm.ReadParameterValue(paramSetId, "GROUP", param); MgStringCollection roles = _site.EnumerateRoles(param["USER"], param["GROUP"]); return new TestResult(CommonUtility.MgStringCollectionToString(roles), "text/plain"); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class EnumerateServers : SiteServiceOperationExecutor { public EnumerateServers(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { MgByteReader reader = _site.EnumerateServers(); return TestResult.FromByteReader(reader); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class AddServer : SiteServiceOperationExecutor { public AddServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "NAME", param); _unitTestVm.ReadParameterValue(paramSetId, "DESCRIPTION", param); _unitTestVm.ReadParameterValue(paramSetId, "ADDRESS", param); _site.AddServer(param["NAME"], param["DESCRIPTION"], param["ADDRESS"]); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class UpdateServer : SiteServiceOperationExecutor { public UpdateServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "OLDNAME", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWNAME", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWDESCRIPTION", param); _unitTestVm.ReadParameterValue(paramSetId, "NEWADDRESS", param); _site.UpdateServer(param["OLDNAME"], param["NEWNAME"], param["NEWDESCRIPTION"], param["NEWADDRESS"]); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class RemoveServer : SiteServiceOperationExecutor { public RemoveServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { var param = new NameValueCollection(); _unitTestVm.ReadParameterValue(paramSetId, "NAME", param); _site.RemoveServer(param["NAME"]); return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } /* public class EnumerateServicesOnServer : SiteServiceOperationExecutor { public EnumerateServicesOnServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class AddServicesToServer : SiteServiceOperationExecutor { public AddServicesToServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } public class RemoveServicesFromServer : SiteServiceOperationExecutor { public RemoveServicesFromServer(MgSite site, string unitTestVm) : base(site, unitTestVm) { } public override TestResult Execute(int paramSetId) { try { return new TestResult(); } catch (MgException ex) { return TestResult.FromMgException(ex); } } } */ }