public void CrosJoinTest() { //Arrange Entity entity = _storage.DataBase.Entities.Find(x => x.Name == "Table1"); Entity entity2 = _storage.DataBase.Entities.Find(x => x.Name == "Table2"); EntityService entityService = new EntityService(entity, _storage); List <List <object> > expectedList = new List <List <object> > { new List <object>() { "name1", 10, 1, "name1", 10, 3 }, new List <object>() { "name1", 10, 1, "name3", -12, 2 }, new List <object>() { "name1", 10, 1, "name2", 124, -10 }, new List <object>() { "name2", 124, -10, "name1", 10, 3 }, new List <object>() { "name2", 124, -10, "name3", -12, 2 }, new List <object>() { "name2", 124, -10, "name2", 124, -10 }, }; var json = JsonSerializer.Serialize(expectedList); var expected = JsonSerializer.Deserialize <List <List <object> > >(json); //Act var actual = entityService.CrossJoin(entity2, false); //Assert Assert.Multiple(() => { for (int i = 0; i < actual.Count; i++) { for (int j = 0; j < actual[i].Count; j++) { Assert.AreEqual(expected[i][j].ToString(), actual[i][j].ToString()); } } }); }