public void GetFieldValue_LookupFields_ReturnsValues()
        {
            // Arrange
            var listItem = new ShimListItem()
            {
                FieldValuesGet = () =>
                                 new Dictionary <string, object>()
                {
                    { DummyColumn, DummyInt }
                }
            };
            var userFields      = new List <string>();
            var multiUserFields = new List <string>();
            var lookupFields    = new List <string>()
            {
                DummyColumn
            };
            var multiLookupFields = new List <string>();

            // Act
            var actualResult = _privateObject.Invoke("GetFieldValue", listItem.Instance, DummyColumn, userFields, multiUserFields, lookupFields, multiLookupFields);

            // Assert
            actualResult.ShouldBe(DummyInt);
        }
        public void GetFieldValue_MultiUserFields_ReturnsValues()
        {
            // Arrange
            var listItem = new ShimListItem()
            {
                FieldValuesGet = () =>
                                 new Dictionary <string, object>()
                {
                    { DummyColumn, new object[] { new ShimFieldUserValue().Instance } }
                }
            };
            var userFields      = new List <string>();
            var multiUserFields = new List <string>()
            {
                DummyColumn
            };
            var lookupFields      = new List <string>();
            var multiLookupFields = new List <string>();

            ShimClientObjectCollection.AllInstances.CountGet = sender => 1;
            ShimClientObjectCollection <ListItem> .AllInstances.ItemGetInt32 = (sender, id) => new ShimListItem()
            {
                ItemGetString = itemName => DummyEmail
            };
            ShimClientContext.AllInstances.WebGet = sender => new ShimWeb()
            {
                ListsGet = () => new ShimListCollection()
                {
                    GetByTitleString = title => new ShimList()
                    {
                        GetItemByIdInt32 = id => new ShimListItem()
                        {
                            DeleteObject = () => { }
                        },
                        GetItemsCamlQuery = query => new ShimListItemCollection()
                        {
                            GetByIdInt32 = id => new ShimListItem()
                        }.Bind(
                            new List <ListItem>()
                        {
                            new ShimListItem()
                            {
                                ItemGetString = item => DummyEmail
                            }
                        }),
                        ItemCountGet = () => 1
                    }
                }
            };

            // Act
            var actualResult = _privateObject.Invoke("GetFieldValue", listItem.Instance, DummyColumn, userFields, multiUserFields, lookupFields, multiLookupFields);

            // Assert
            actualResult.ShouldBe(DummyEmail);
        }