public void FillItemTypeWithData(user_sid_item userSidToFill, object collectedData)
 {
     var allUserGroupSIDs = ((WindowsUserAccount)collectedData).GroupSIDs;
     
     userSidToFill.enabled = OvalHelper.CreateBooleanEntityItemFromBoolValue(((WindowsUserAccount)collectedData).UserEnabled);
     userSidToFill.group_sid = new EntityItemStringType[allUserGroupSIDs.Count];
     for (int i = 0; i < allUserGroupSIDs.Count; i++)
     {
         var newGroupSIDEntity = OvalHelper.CreateItemEntityWithStringValue(allUserGroupSIDs[i]);
         userSidToFill.group_sid[i] = newGroupSIDEntity;
     }
 }
        public void Should_create_a_ItemType_with_NotExistsStatus_when_UserSIDNotFoundException_was_raised()
        {
            var fakeItemToCollect = new user_sid_item() 
            { 
                status = StatusEnumeration.notcollected,
                user_sid = OvalHelper.CreateItemEntityWithStringValue("S-1-18") 
            }
            ;
            var userSIDNotFoundEx = new UserSIDNotFoundException(fakeItemToCollect.user_sid.Value);
            var systemDataSource = CreateMockedObjectCollector(null);

            var collectedItems = systemDataSource.CollectDataForSystemItem(fakeItemToCollect);

            Assert.IsNotNull(collectedItems, "The result of collect cannot be null.");
            Assert.AreEqual(1, collectedItems.Count(), "Unexpected number of collected objects was found.");
            Assert.IsNotNull(collectedItems.ElementAt(0).ExecutionLog, "The execution log for collected item cannot be null.");
            var collectedItem = (user_sid_item)collectedItems.ElementAt(0).ItemType;
            Assert.AreEqual(StatusEnumeration.doesnotexist, collectedItem.status, "Invalid Item Type Status was found.");
        }
        public void Should_be_possible_to_collect_a_UserSID55Item()
        {
            var fakeItemToCollect = new user_sid_item() 
            { 
                status = StatusEnumeration.notcollected,
                user_sid = OvalHelper.CreateItemEntityWithStringValue("S-1-18") 
            };
            var fakeAccount = GetFakeWindowsAccount(true, new string[] { "S-1-5-32-500", "S-1-5-32-501" });
            var objectCollector = CreateMockedObjectCollector(fakeAccount);

            var collectedItems = objectCollector.CollectDataForSystemItem(fakeItemToCollect);

            Assert.IsNotNull(collectedItems, "The result of collect cannot be null.");
            Assert.AreEqual(1, collectedItems.Count(), "Unexpected number of collected objects was found.");
            Assert.IsNotNull(collectedItems.ElementAt(0).ExecutionLog, "The execution log for collected item cannot be null.");

            var collectedItem = (user_sid_item)collectedItems.ElementAt(0).ItemType;
            Assert.AreEqual(StatusEnumeration.exists, collectedItem.status, "Invalid Item Type Status was found.");
            Assert.AreEqual("S-1-18", collectedItem.user_sid.Value, "Unexpected item type value was found.");
            Assert.AreEqual("1", collectedItem.enabled.Value, "Unexpected item type value was found.");
            Assert.AreEqual(2, collectedItem.group_sid.Count(), "Unexpected number of group SIDs was found in collected user_sid_item.");
            Assert.AreEqual("S-1-5-32-500", collectedItem.group_sid.ElementAt(0).Value, "A unexpected group SID was found in collected user_sid_item.");
            Assert.AreEqual("S-1-5-32-501", collectedItem.group_sid.ElementAt(1).Value, "A unexpected group SID was found in collected user_sid_item.");
        }
 private void AssetUserItem(user_sid_item itemToAssert, string expectedUserSidValue, StatusEnumeration status)
 {
 }