public void Example()
        {
            #region Usage
            string json =
                @"{
              'DisplayName': 'John Smith',
              'SAMAccountName': 'contoso\\johns'
            }";

            DirectoryAccount account = JsonConvert.DeserializeObject <DirectoryAccount>(json);

            Console.WriteLine(account.DisplayName);
            // John Smith

            Console.WriteLine(account.Domain);
            // contoso

            Console.WriteLine(account.UserName);
            // johns
            #endregion

            Assert.AreEqual("John Smith", account.DisplayName);
            Assert.AreEqual("contoso", account.Domain);
            Assert.AreEqual("johns", account.UserName);
        }
示例#2
0
        public void test_translate_multi_level_property_access_with_expression()
        {
            DirectoryAccount account = new DirectoryAccount {
                Alias = "Dummy", GivenName = "GivN", SurName = "SirN", Id = 132
            };
            var level1 = new {
                level2 = new {
                    level3 = new {
                        acc = account
                    }
                }
            };

            translator = this.GetTranslator(a => a.Alias != level1.level2.level3.acc.GivenName);
            Assert.AreEqual("(!(alias=GivN))", translator.FilterString);

            translator = this.GetTranslator(a => level1.level2.level3.acc.GivenName != a.Alias);
            Assert.AreEqual("(!(alias=GivN))", translator.FilterString);

            translator = this.GetTranslator(a => a.Alias == level1.level2.level3.acc.GivenName);
            Assert.AreEqual("(alias=GivN)", translator.FilterString);

            translator = this.GetTranslator(a => level1.level2.level3.acc.GivenName == a.Alias);
            Assert.AreEqual("(alias=GivN)", translator.FilterString);

            translator = this.GetTranslator(a => a.Id == level1.level2.level3.acc.Id);
            Assert.AreEqual("(id=132)", translator.FilterString);

            translator = this.GetTranslator(a => level1.level2.level3.acc.Id == a.Id);
            Assert.AreEqual("(id=132)", translator.FilterString);
        }
示例#3
0
        public void test_find_function_managers()
        {
            DirectoryAccount user = service.FindByAlias(userAlias);

            IEnumerable <DirectoryAccount> accounts = service.FindFunctionManagers(user);

            Assert.IsNotNull(accounts);
            Assert.AreEqual(0, accounts.Count());
        }
        public void test_active_directory_find_direct_manager()
        {
            DirectoryAccount user = service.FindByAlias(userAlias);

            DirectoryAccount manager = service.FindDirectManager(user);

            Assert.IsNotNull(manager);
            Assert.AreEqual(user.DirectManager, manager.DistinguishName);
        }
示例#5
0
        public virtual void test_find_direct_manager()
        {
            DirectoryAccount user = service.FindByAlias(userAlias);

            DirectoryAccount manager = service.FindDirectManager(user);

            Assert.IsNotNull(manager);
            Assert.AreEqual(user.DirectManager.ToLower(), manager.DistinguishName.ToLower());
        }
        public void test_ldap_find_team_members()
        {
            DirectoryAccount user = service.FindByAlias("KLi5");

            IEnumerable <DirectoryAccount> accounts = service.FindTeamMembers(user);

            Assert.IsNotNull(accounts);
            Assert.IsTrue(accounts.Count() > 0);
            Assert.AreEqual(5, accounts.Count());
        }
示例#7
0
        public void DeserializeDirectoryAccount()
        {
            string json = @"{'DisplayName':'John Smith', 'SAMAccountName':'contoso\\johns'}";

            DirectoryAccount account = JsonConvert.DeserializeObject <DirectoryAccount>(json);

            Assert.AreEqual("John Smith", account.DisplayName);
            Assert.AreEqual("contoso", account.Domain);
            Assert.AreEqual("johns", account.UserName);
        }
        public void test_ldap_get_property_value()
        {
            DirectoryAccount user = service.FindByAlias(userAlias);

            Assert.IsNotNull(user);

            var ldap_user       = user as DirectoryAccount;
            var locationorgunit = ldap_user.GetValue("locationorgunit");

            Assert.AreEqual("89039610", locationorgunit);
        }
        public override void test_find_team_members()
        {
            DirectoryAccount user = service.FindByAlias("KLi5");

            IEnumerable <DirectoryAccount> accounts = service.FindTeamMembers(user);

            Assert.IsNotNull(accounts);
            Assert.IsTrue(accounts.Count() > 0);
            // we use >= 0 assertion is because
            // the There is only 1 team members in the testing db data
            Assert.IsTrue(accounts.Count() >= 0);
        }
        protected override void test_ldap_record_yufei(DirectoryAccount user)
        {
            Assert.IsNotNull(user);

            Assert.Multiple(() => {
                Assert.AreEqual("contractor", user.EmployeeType);
                Assert.AreEqual("LYufei", user.Alias);

                Assert.AreEqual("liu-20140317", user.UniqueId);
                Assert.AreEqual("Yufei", user.GivenName);
                Assert.AreEqual("Liu", user.SurName);
                Assert.AreEqual("Yufei Liu", user.CommonName);
                Assert.AreEqual(1, user.Managers.Length);
                Assert.AreEqual("IT", user.Organization);
                Assert.AreEqual("Shared Services", user.OrganizationUnit);
                Assert.AreEqual("*****@*****.**", user.Mail);
                Assert.AreEqual("cn=Liu Yufei  100001,ou=contractor,o=company,C=AN", user.DistinguishName);
                Assert.AreEqual("Yufei Liu", user.DisplayName);
                Assert.AreEqual("contractor", user.EmployeeType);
                Assert.AreEqual("56787840", user.GIN);
                Assert.AreEqual("+44 1293 557048", user.TelephoneNumbers[0]);
                Assert.AreEqual("Contractor", user.JobTitle);
                Assert.AreEqual("IT", user.Department);
                Assert.AreEqual("liu-20140317", user.UniqueId);
                Assert.AreEqual(721668, user.Id);
                Assert.AreEqual(1, user.Managers.Length);
                Assert.AreEqual("RH6 6HR", user.PostalCode);
                Assert.AreEqual("West Sussex", user.Street);
                Assert.AreEqual("GB", user.Country);
                Assert.AreEqual("Gatwick", user.City);
                Assert.AreEqual(1, user.Subscriptions.Length);
                Assert.AreEqual("Gatwick", user.ITBuilding);
                Assert.AreEqual("GB0001", user.Geosite);
                Assert.AreEqual("IT Ops", user.SegmentCode);
                //Assert.AreEqual("", user.DirectManagerDirectoryID);


                //information that's not available on AD
                Assert.AreEqual("GB0008", user.LocationCode);
                Assert.AreEqual("82154011-JC", user.JobCode);
                Assert.AreEqual("82154011", user.JobCodeID);
                Assert.AreEqual("JC", user.JobCodeName);
                Assert.AreEqual("IT Ops", user.BusinessCategory);
                Assert.AreEqual(3, user.AccessRights.Length);
                Assert.AreEqual("CN=Liu Yufei  100001,ou=Users,OU=Horsham,OU=GB,DC=DIR,DC=company,DC=com".ToLower(), user.ActiveDirectoryDN.ToLower());
                Assert.AreEqual("Data Processing", user.JobCategory);
                Assert.AreEqual("00001540-JG", user.JobGroup);
                Assert.AreEqual("00001540", user.JobGroupId);
                Assert.AreEqual("JG", user.JobGroupName);
                Assert.AreEqual("IT Operations", user.LegalEntity);
            });
        }
        protected override void test_ldap_record_yufei(DirectoryAccount user)
        {
            var msg = this.GetType().ToString() + " unexpected value";

            Assert.IsNotNull(user, this.GetType().ToString() + " - user cannot be null");
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("LYufei", user.Alias, msg);

            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual("Yufei", user.GivenName, msg);
            Assert.AreEqual("Liu", user.SurName, msg);
            Assert.AreEqual("Liu Yufei  100001", user.CommonName, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("IT", user.Organization, msg);
            Assert.AreEqual("Report & Config Systems", user.OrganizationUnit, msg);
            Assert.AreEqual("*****@*****.**", user.Mail, msg);
            Assert.AreEqual("cn=Liu Yufei  100001,ou=contractor,o=company,c=an", user.DistinguishName.ToLower(), msg);
            Assert.AreEqual("Yufei Liu", user.DisplayName, msg);
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("04878765", user.GIN, msg);
            Assert.AreEqual("+44 1883 557048", user.TelephoneNumbers[0], msg);
            Assert.AreEqual("Contractor", user.JobTitle, msg);
            Assert.AreEqual("IT", user.Department, msg);
            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual(721668, user.Id, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("RH6 0NZ", user.PostalCode, msg);
            Assert.AreEqual("Buckingham Gate,  West Sussex", user.Street, msg);
            Assert.AreEqual("GB", user.Country, msg);
            Assert.AreEqual("Gatwick", user.City, msg);
            Assert.IsTrue(user.Subscriptions.Length > 0, msg);
            Assert.AreEqual("Horsham", user.ITBuilding, msg);
            Assert.AreEqual("GB0080", user.Geosite, msg);
            //Assert.AreEqual("", user.DirectManagerDirectoryID);


            //information that's not available on AD
            Assert.AreEqual("GB0008", user.LocationCode, msg);
            Assert.AreEqual("82154011", user.JobCode, msg);
            Assert.AreEqual("82154011", user.JobCodeID, msg);
            Assert.AreEqual("JC", user.JobCodeName, msg);
            Assert.AreEqual("IT Operations", user.BusinessCategory, msg);
            Assert.AreEqual(0, user.AccessRights.Length, msg);
            Assert.AreEqual("CN=Liu Yufei  100001,ou=Users,OU=GB,DC=DIR,DC=company,DC=com".ToLower(), user.ActiveDirectoryDN.ToLower(), msg);
            //Assert.AreEqual(3, user.EDMWorkStations.Length);
            Assert.AreEqual("Data Processing", user.JobCategory, msg);
            Assert.AreEqual("00001530", user.JobGroup, msg);
            Assert.AreEqual("JG", user.JobGroupId, msg);
            Assert.AreEqual("JG", user.JobGroupName, msg);
            Assert.AreEqual("", user.AccountingCode, msg);
            Assert.AreEqual("106441", user.AccountingUnit, msg);
        }
        protected override void test_ldap_record_yufei(DirectoryAccount user)
        {
            var msg = this.GetType().ToString() + " unexpected value";

            Assert.IsNotNull(user, this.GetType().ToString() + " - user cannot be null");
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("LYufei", user.Alias, msg);

            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual("Yufei", user.GivenName, msg);
            Assert.AreEqual("Liu", user.SurName, msg);
            Assert.AreEqual("Liu Yufei  721668", user.CommonName, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("IT", user.Organization, msg);
            Assert.AreEqual("IT Operations", user.OrganizationUnit, msg);
            Assert.AreEqual("*****@*****.**", user.Mail, msg);
            Assert.AreEqual("cn=liu yufei  721668,ou=contractor,o=sample,c=an", user.DistinguishName.ToLower(), msg);
            Assert.AreEqual("Yufei Liu", user.DisplayName, msg);
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("56787840", user.GIN, msg);
            Assert.AreEqual("+44 1293 557048", user.TelephoneNumbers[0], msg);
            Assert.AreEqual("Engineer", user.JobTitle, msg);
            Assert.AreEqual("IT", user.Department, msg);
            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual(721668, user.Id, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("RH6 6NZ", user.PostalCode, msg);
            Assert.AreEqual("Buckingham Gate,  West Sussex", user.Street, msg);
            Assert.AreEqual("GB", user.Country, msg);
            Assert.AreEqual("Gatwick", user.City, msg);
            Assert.IsTrue(user.Subscriptions.Length > 0, msg);
            Assert.AreEqual("GB0080", user.ITBuilding, msg);
            Assert.AreEqual("", user.Geosite, msg);
            //Assert.AreEqual("", user.DirectManagerDirectoryID);


            //information that's not available on AD
            Assert.AreEqual("GB0008", user.LocationCode, msg);
            Assert.AreEqual("82154011-JC", user.JobCode, msg);
            Assert.AreEqual("82154011", user.JobCodeID, msg);
            Assert.AreEqual("JC", user.JobCodeName, msg);
            Assert.AreEqual("IT Operations", user.BusinessCategory, msg);
            Assert.AreEqual(1, user.AccessRights.Length, msg);
            Assert.AreEqual("Data Processing", user.JobCategory, msg);
            Assert.AreEqual("00001530-JG", user.JobGroup, msg);
            Assert.AreEqual("00001530", user.JobGroupId, msg);
            Assert.AreEqual("JG", user.JobGroupName, msg);
            Assert.AreEqual("", user.AccountingCode, msg);
            Assert.AreEqual("0004482751", user.AccountingUnit, msg);
        }
示例#13
0
        public virtual void test_find_team_members()
        {
            DirectoryAccount user = service.FindByAlias("KLi5");

            IEnumerable <DirectoryAccount> accounts = service.FindTeamMembers(user);

            Assert.IsNotNull(accounts);
            Assert.IsTrue(accounts.Count() > 0);
            // we use >= 8 assertion is because
            // AD is not fully synced to LDAP yet
            // so in AD Katherine has 9 reporters
            // where in LDAP Katherine only has 8 reporters
            Assert.AreEqual(2, accounts.Count());
        }
        protected override void test_ldap_record_yufei(DirectoryAccount user)
        {
            var msg = this.GetType().ToString() + " unexpected value";

            Assert.IsNotNull(user, this.GetType().ToString() + " - user cannot be null");
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("LYufei", user.Alias, msg);

            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual("Yufei", user.GivenName, msg);
            Assert.AreEqual("Liu", user.SurName, msg);
            Assert.AreEqual("Liu Yufei  100001", user.CommonName, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("Oilfield", user.Organization, msg);
            Assert.AreEqual("Legacy ITE - INF Report & Config Systems", user.OrganizationUnit, msg);
            Assert.AreEqual("*****@*****.**", user.Mail, msg);
            Assert.AreEqual("CN=Liu Yufei  100001,OU=Users,OU=Gatwick-GB0080,OU=GB,OU=EAF,DC=DIR,DC=company,DC=com", user.DistinguishName, msg);
            Assert.AreEqual("Yufei Liu", user.DisplayName, msg);
            Assert.AreEqual("contractor", user.EmployeeType, msg);
            Assert.AreEqual("04878765", user.GIN, msg);
            Assert.AreEqual("441293557048", user.TelephoneNumbers[0], msg);
            Assert.AreEqual("Contractor", user.JobTitle, msg);
            Assert.AreEqual("IT", user.Department, msg);
            Assert.AreEqual("liu-20140317", user.UniqueId, msg);
            Assert.AreEqual(721668, user.Id, msg);
            Assert.AreEqual(1, user.Managers.Length, msg);
            Assert.AreEqual("RH6 0NZ", user.PostalCode, msg);
            Assert.AreEqual("Buckingham Gate,  West Sussex", user.Street, msg);
            Assert.AreEqual("GB", user.Country, msg);
            Assert.AreEqual("Gatwick", user.City, msg);
            Assert.AreEqual(0, user.Subscriptions.Length, msg);

            //information that's not available on AD
            Assert.AreEqual(String.Empty, user.LocationCode, msg);
            Assert.AreEqual(String.Empty, user.JobCode, msg);
            Assert.AreEqual("O611-IT Infrastructure", user.BusinessCategory, msg);
            Assert.AreEqual(0, user.AccessRights.Length, msg);
            Assert.AreEqual(String.Empty, user.ActiveDirectoryDN.ToLower(), msg);
            //Assert.AreEqual(0, user.EDMWorkStations.Length, msg);
            Assert.AreEqual(String.Empty, user.JobCategory, msg);
            Assert.AreEqual(String.Empty, user.JobGroup, msg);
            Assert.AreEqual(0, user.Subscriptions.Length, msg);
            Assert.AreEqual(String.Empty, user.ITBuilding, msg);
            Assert.AreEqual(String.Empty, user.Geosite, msg);
            Assert.AreEqual(String.Empty, user.AccountingCode, msg);
            Assert.AreEqual(String.Empty, user.AccountingUnit, msg);
            Assert.AreEqual(String.Empty, user.LegalEntity);
        }
示例#15
0
        public static void Run()
        {
            //The JsonExtensionDataAttribute instructs the JsonSerializer to deserialize properties with no matching field or property on the type into the specified collection.
            //During serialization the values in this collection are written back to the instance's JSON object.
            //This example shows the JsonExtensionDataAttribute being applied to a field, unmatched JSON properties being added to the field's collection during deserialization.
            string json = @"{
                                'DisplayName': 'John Smith',
                                'SAMAccountName': 'contoso\\johns'
                            }";

            DirectoryAccount account = JsonConvert.DeserializeObject <DirectoryAccount>(json);

            Console.WriteLine(account.DisplayName);
            Console.WriteLine(account.Domain);
            Console.WriteLine(account.UserName);
            string jsonStr = JsonConvert.SerializeObject(account);

            Console.WriteLine(jsonStr);
            //output:{"DisplayName":"John Smith","UserName":"******","Domain":"contoso","SAMAccountName":"contoso\\johns"}
        }
示例#16
0
        public void test_translate_property_access_with_expression()
        {
            DirectoryAccount account = new DirectoryAccount {
                Alias = "Dummy", GivenName = "GivN", SurName = "SirN", Id = 132
            };

            translator = this.GetTranslator(a => a.Alias != account.GivenName);
            Assert.AreEqual("(!(alias=GivN))", translator.FilterString);

            translator = this.GetTranslator(a => account.GivenName != a.Alias);
            Assert.AreEqual("(!(alias=GivN))", translator.FilterString);

            translator = this.GetTranslator(a => a.Alias == account.GivenName);
            Assert.AreEqual("(alias=GivN)", translator.FilterString);

            translator = this.GetTranslator(a => account.GivenName == a.Alias);
            Assert.AreEqual("(alias=GivN)", translator.FilterString);

            translator = this.GetTranslator(a => a.Id == account.Id);
            Assert.AreEqual("(id=132)", translator.FilterString);

            translator = this.GetTranslator(a => account.Id == a.Id);
            Assert.AreEqual("(id=132)", translator.FilterString);
        }
示例#17
0
        /*
         * [Test]
         * public virtual void test_search_distribution_list() {
         *  var result = service.SearchDistributionList("ITReporter");
         *
         *  Assert.AreEqual(1, result.Count);
         * }
         */

        protected virtual void test_ldap_record_yufei(DirectoryAccount user)
        {
            var msg = this.GetType().ToString() + " unexpected value";

            throw new NotImplementedException("test_ldap_record_yufei must be implemented on sub classes, " + msg);
        }