public void Map_HasResultsAndParents_MapsParents()
        {
            //Arrange
            var manyToManyItem = new ManyToManyItem { Id = 5 };
            var manyToManyItem2 = new ManyToManyItem { Id = 8 };
            var manyToManyItem3 = new ManyToManyItem { Id = 13 };
            var manyToManyItemList = new List<ManyToManyItem> { manyToManyItem, manyToManyItem2, manyToManyItem3 };
            MockGridReader.Setup(gridReader => gridReader.Read<ManyToManyItem>()).Returns(manyToManyItemList);
            var parent = new ParentItem { Id = 1 };
            var parent2 = new ParentItem { Id = 2 };
            var linker = new ManyToManyLinker { ChildId = 5, ParentId = 1 };
            var linker2 = new ManyToManyLinker { ChildId = 13, ParentId = 1 };
            var linker3 = new ManyToManyLinker { ChildId = 8, ParentId = 2 };
            var linker4 = new ManyToManyLinker { ChildId = 13, ParentId = 2 };
            var linkerList = new List<ManyToManyLinker> { linker, linker2, linker3, linker4 };
            MockGridReader.Setup(gridReader => gridReader.Read<ManyToManyLinker>()).Returns(linkerList);
            var parentDictionary = new Dictionary<int, ParentItem> { [1] = parent, [2] = parent2 };

            //Act
            ManyToManyMapping.Map(MockGridReader.Object, parentDictionary, true);

            //Assert
            Assert.AreEqual(2, parentDictionary[1].ManyToManyChildren.Count);
            Assert.IsTrue(parentDictionary[1].ManyToManyChildren.Contains(manyToManyItem));
            Assert.IsTrue(parentDictionary[1].ManyToManyChildren.Contains(manyToManyItem3));

            Assert.AreEqual(2, parentDictionary[2].ManyToManyChildren.Count);
            Assert.IsTrue(parentDictionary[2].ManyToManyChildren.Contains(manyToManyItem2));
            Assert.IsTrue(parentDictionary[2].ManyToManyChildren.Contains(manyToManyItem3));
        }
        public void Map_HasResultsAndParents_MapsParents()
        {
            //Arrange
            var oneToOneItem = new OneToOneItem { Id = 5 };
            var oneToOneItemList = new List<OneToOneItem> { oneToOneItem };
            MockGridReader.Setup(gridReader => gridReader.Read<OneToOneItem>()).Returns(oneToOneItemList);
            var parent = new ParentItem { ChildId = 5 };
            var parentDictionary = new Dictionary<int, ParentItem> { [1] = parent };

            //Act
            OneToOneMapping.Map(MockGridReader.Object, parentDictionary, true);

            //Assert
            Assert.AreEqual(oneToOneItem, parentDictionary[1].Child);
        }
        public void Map_HasResultsAndParents_MapsParents()
        {
            //Arrange
            var oneToManyItem = new OneToManyItem { Id = 5, ParentId = 1 };
            var oneToManyItem2 = new OneToManyItem { Id = 18, ParentId = 5 };
            var oneToManyItem3 = new OneToManyItem { Id = 23, ParentId = 1 };
            var oneToManyItemList = new List<OneToManyItem> { oneToManyItem, oneToManyItem2, oneToManyItem3 };
            MockGridReader.Setup(gridReader => gridReader.Read<OneToManyItem>()).Returns(oneToManyItemList);
            var parent = new ParentItem { ChildId = 5 };
            var parentDictionary = new Dictionary<int, ParentItem> { [1] = parent };

            //Act
            OneToManyMapping.Map(MockGridReader.Object, parentDictionary, true);

            //Assert
            Assert.IsNull(parentDictionary[1].Child);
            Assert.AreEqual(2, parentDictionary[1].Children.Count);
            Assert.AreEqual(oneToManyItem, parentDictionary[1].Children[0]);
            Assert.AreEqual(oneToManyItem3, parentDictionary[1].Children[1]);
        }
        private List<ParentItem> GetParentListWithSingleItem()
        {
            var parentItem = new ParentItem();
            var parentList = new List<ParentItem> { parentItem };

            return parentList;
        }