Example #1
0
        public void DeleteDomain()
        {
            var api        = new IceWarpRpcApi();
            var authResult = Authenticate(api);

            var domainToDelete         = "deletedomain.com";
            var deleteDomainAdminEmail = "*****@*****.**";

            //Check domain does not exist
            var getDomainProperties = new GetDomainProperties
            {
                SessionId          = authResult.SessionId,
                DomainStr          = domainToDelete,
                DomainPropertyList = new TDomainPropertyList
                {
                    Items = new List <TAPIProperty>
                    {
                        new TAPIProperty {
                            PropName = "D_AdminEmail"
                        }
                    }
                }
            };

            try
            {
                var domainCheckResult = api.Execute(_url, getDomainProperties);
            }
            catch (IceWarpErrorException e)
            {
                //Create domain
                var createDomain = new CreateDomain
                {
                    SessionId        = authResult.SessionId,
                    DomainStr        = domainToDelete,
                    DomainProperties = new TPropertyValueList
                    {
                        Items = new List <TPropertyValue>
                        {
                            new TPropertyValue
                            {
                                APIProperty = new TAPIProperty {
                                    PropName = "D_AdminEmail"
                                },
                                PropertyVal = new TPropertyString {
                                    Val = deleteDomainAdminEmail
                                },
                                PropertyRight = TPermission.ReadWrite
                            }
                        }
                    }
                };
                var createDomainResult = api.Execute(_url, createDomain);
                Assert.True(createDomainResult.Success);

                //Check can get properties for new domain
                var getDomainPropertiesResult = api.Execute(_url, getDomainProperties);
                Assert.AreEqual(1, getDomainPropertiesResult.Items.Count);
                Assert.AreEqual("tpropertystring", getDomainPropertiesResult.Items.First().PropertyVal.ClassName);
                Assert.AreEqual(deleteDomainAdminEmail, ((TPropertyString)getDomainPropertiesResult.Items.First().PropertyVal).Val);
            }

            //Delete domain
            var deleteDomain = new DeleteDomain
            {
                SessionId = authResult.SessionId,
                DomainStr = domainToDelete
            };
            var deleteDomainResult = api.Execute(_url, deleteDomain);

            Assert.True(deleteDomainResult.Success);

            //Check domain does not exist
            var exception = Assert.Throws <IceWarpErrorException>(() => api.Execute(_url, getDomainProperties));

            Assert.AreEqual("domain_invalid", exception.IceWarpError);

            LogOut(api, authResult.SessionId);
        }
Example #2
0
        public void GetDomainProperties()
        {
            string expected = File.ReadAllText(Path.Combine(_requestsTestDataPath, "GetDomainProperties.xml"));
            var    request  = new GetDomainProperties
            {
                SessionId          = "sid",
                DomainStr          = "testing.co.uk",
                DomainPropertyList = new TDomainPropertyList
                {
                    Items = new List <TAPIProperty>
                    {
                        new TAPIProperty {
                            PropName = "d_adminemail"
                        },
                        new TAPIProperty {
                            PropName = "d_aliases"
                        },
                        new TAPIProperty {
                            PropName = "d_postmaster"
                        },
                        new TAPIProperty {
                            PropName = "d_unknownforwardto"
                        },
                        new TAPIProperty {
                            PropName = "d_unknownuserstype"
                        }
                    }
                }
            };
            var xml = request.ToXml().InnerXmlFormatted();

            Assert.AreEqual(expected, xml);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(File.ReadAllText(Path.Combine(_responsesTestDataPath, "GetDomainProperties.xml")));
            var response = request.FromHttpRequestResult(new HttpRequestResult {
                Response = doc.InnerXml
            });

            Assert.AreEqual("result", response.Type);
            Assert.AreEqual(5, response.Items.Count);

            var adminEmail = response.Items.FirstOrDefault(x => x.APIProperty.PropName == "d_adminemail");

            Assert.NotNull(adminEmail);
            Assert.AreEqual(typeof(TPropertyString), adminEmail.PropertyVal.GetType());
            Assert.AreEqual("*****@*****.**", ((TPropertyString)adminEmail.PropertyVal).Val);
            Assert.AreEqual(TPermission.ReadWrite, response.Items.First().PropertyRight);

            var aliases = response.Items.FirstOrDefault(x => x.APIProperty.PropName == "d_aliases");

            Assert.NotNull(aliases);
            Assert.AreEqual(typeof(TPropertyString), aliases.PropertyVal.GetType());
            Assert.True(String.IsNullOrEmpty(((TPropertyString)aliases.PropertyVal).Val));
            Assert.AreEqual(TPermission.ReadWrite, response.Items.Last().PropertyRight);

            var postmaster = response.Items.FirstOrDefault(x => x.APIProperty.PropName == "d_postmaster");

            Assert.NotNull(postmaster);
            Assert.AreEqual(typeof(TPropertyString), postmaster.PropertyVal.GetType());
            Assert.AreEqual("postmaster;admin;administrator;supervisor;hostmaster;webmaster;abuse", ((TPropertyString)postmaster.PropertyVal).Val);
            Assert.AreEqual(TPermission.ReadWrite, response.Items.Last().PropertyRight);

            var unknownForwardTo = response.Items.FirstOrDefault(x => x.APIProperty.PropName == "d_unknownforwardto");

            Assert.NotNull(unknownForwardTo);
            Assert.AreEqual(typeof(TPropertyString), unknownForwardTo.PropertyVal.GetType());
            Assert.True(String.IsNullOrEmpty(((TPropertyString)unknownForwardTo.PropertyVal).Val));
            Assert.AreEqual(TPermission.ReadWrite, response.Items.Last().PropertyRight);

            var unknownUsersType = response.Items.FirstOrDefault(x => x.APIProperty.PropName == "d_unknownuserstype");

            Assert.NotNull(unknownUsersType);
            Assert.AreEqual(typeof(TPropertyString), unknownUsersType.PropertyVal.GetType());
            Assert.AreEqual("0", ((TPropertyString)unknownUsersType.PropertyVal).Val);
            Assert.AreEqual(TPermission.ReadWrite, response.Items.Last().PropertyRight);
        }