Exemple #1
0
            protected MatchQueryMySqlFixtureBase()
            {
                var entitySorters = new Dictionary <Type, Func <dynamic, object> >
                {
                    { typeof(Herb), e => e?.Id }
                }.ToDictionary(e => e.Key, e => (object)e.Value);

                var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
                {
                    {
                        typeof(Herb), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.Name, a.Name);
                            }
                        }
                    }
                }.ToDictionary(e => e.Key, e => (object)e.Value);

                QueryAsserter = new QueryAsserter <PoolableDbContext>(
                    CreateContext,
                    new MatchQueryData(),
                    entitySorters,
                    entityAsserters);
            }
            public NetTopologySuiteFixture()
            {
                var entitySorters = new Dictionary <Type, Func <dynamic, object> >
                {
                    { typeof(SpatialTypes), e => e?.Id }
                };

                var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
                {
                    {
                        typeof(SpatialTypes),
                        (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);

                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                            }
                        }
                    }
                };

                QueryAsserter = new QueryAsserter <NetTopologySuiteContext>(
                    CreateContext,
                    new SpatialData(),
                    entitySorters,
                    entityAsserters);
            }
Exemple #3
0
            public FunkyDataQueryFixtureBase()
            {
                var entitySorters = new Dictionary <Type, Func <dynamic, object> >
                {
                    { typeof(FunkyCustomer), e => e?.Id },
                }.ToDictionary(e => e.Key, e => (object)e.Value);;

                var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
                {
                    {
                        typeof(FunkyCustomer), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.FirstName, a.FirstName);
                                Assert.Equal(e.LastName, a.LastName);
                                Assert.Equal(e.NullableBool, a.NullableBool);
                            }
                        }
                    },
                }.ToDictionary(e => e.Key, e => (object)e.Value);;

                QueryAsserter = new QueryAsserter <FunkyDataContext>(
                    CreateContext,
                    new FunkyDataData(),
                    entitySorters,
                    entityAsserters);
            }
Exemple #4
0
 public Task AssertFilteredQueryScalar <TResult>(
     bool async,
     Func <ISetSource, IQueryable <TResult> > actualQuery,
     Func <ISetSource, IQueryable <TResult> > expectedQuery,
     bool assertOrder = false,
     [CallerMemberName] string testMethodName = null)
     where TResult : struct
 => QueryAsserter.AssertQueryScalar(actualQuery, expectedQuery, assertOrder, async, testMethodName, filteredQuery : true);
Exemple #5
0
 public SpatialQueryFixtureBase()
 {
     QueryAsserter = new QueryAsserter <SpatialContext>(
         CreateContext,
         new SpatialData(),
         entitySorters: null,
         entityAsserters: null);
 }
Exemple #6
0
 protected SpatialQueryFixtureBase()
 {
     QueryAsserter = new QueryAsserter <SpatialContext>(
         CreateContext,
         new SpatialData(GeometryFactory),
         entitySorters: null,
         entityAsserters: null);
 }
Exemple #7
0
 public Task AssertFilteredQuery <TResult>(
     bool async,
     Func <ISetSource, IQueryable <TResult> > actualQuery,
     Func <ISetSource, IQueryable <TResult> > expectedQuery,
     Func <TResult, object> elementSorter      = null,
     Action <TResult, TResult> elementAsserter = null,
     bool assertOrder = false,
     int entryCount   = 0,
     [CallerMemberName] string testMethodName = null)
     where TResult : class
 => QueryAsserter.AssertQuery(
     actualQuery, expectedQuery, elementSorter, elementAsserter, assertOrder, entryCount, async, testMethodName, filteredQuery : true);
        protected NorthwindQueryFixtureBase()
        {
            var entitySorters = new Dictionary <Type, Func <dynamic, object> >
            {
                { typeof(Customer), e => e.CustomerID },
                { typeof(Order), e => e.OrderID },
                { typeof(Employee), e => e.EmployeeID },
                { typeof(Product), e => e.ProductID },
                { typeof(OrderDetail), e => e.OrderID.ToString() + " " + e.ProductID.ToString() }
            };

            var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >();

            QueryAsserter = new QueryAsserter <NorthwindContext>(
                CreateContext,
                new NorthwindData(),
                entitySorters,
                entityAsserters);
        }
Exemple #9
0
 protected Task AssertFilteredCount <TResult>(
     bool async,
     Func <ISetSource, IQueryable <TResult> > actualQuery,
     Func <ISetSource, IQueryable <TResult> > expectedQuery)
 => QueryAsserter.AssertCount(actualQuery, expectedQuery, async, filteredQuery: true);
        protected ComplexNavigationsQueryFixtureBase()
        {
            var entitySorters = new Dictionary <Type, Func <dynamic, object> >
            {
                { typeof(Level1), e => e.Id },
                { typeof(Level2), e => e.Id },
                { typeof(Level3), e => e.Id },
                { typeof(Level4), e => e.Id },
                { typeof(InheritanceBase1), e => e.Id },
                { typeof(InheritanceBase2), e => e.Id },
                { typeof(InheritanceDerived1), e => e.Id },
                { typeof(InheritanceDerived2), e => e.Id },
                { typeof(InheritanceLeaf1), e => e.Id },
                { typeof(InheritanceLeaf2), e => e.Id }
            };

            var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
            {
                {
                    typeof(Level1),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                        Assert.Equal(e.Date, a.Date);
                    }
                },
                {
                    typeof(Level2),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                        Assert.Equal(e.Date, a.Date);
                        Assert.Equal(e.Level1_Optional_Id, a.Level1_Optional_Id);
                        Assert.Equal(e.Level1_Required_Id, a.Level1_Required_Id);
                    }
                },
                {
                    typeof(Level3),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                        Assert.Equal(e.Level2_Optional_Id, a.Level2_Optional_Id);
                        Assert.Equal(e.Level2_Required_Id, a.Level2_Required_Id);
                    }
                },
                {
                    typeof(Level4),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                        Assert.Equal(e.Level3_Optional_Id, a.Level3_Optional_Id);
                        Assert.Equal(e.Level3_Required_Id, a.Level3_Required_Id);
                    }
                },
                {
                    typeof(InheritanceBase1),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                },
                {
                    typeof(InheritanceBase2),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                },
                {
                    typeof(InheritanceDerived1),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                },
                {
                    typeof(InheritanceDerived2),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                },
                {
                    typeof(InheritanceLeaf1),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                },
                {
                    typeof(InheritanceLeaf2),
                    (e, a) =>
                    {
                        Assert.Equal(e.Id, a.Id);
                        Assert.Equal(e.Name, a.Name);
                    }
                }
            };

            QueryAsserter = new QueryAsserter <ComplexNavigationsContext>(
                CreateContext,
                new ComplexNavigationsDefaultData(),
                entitySorters,
                entityAsserters);
        }
        protected GearsOfWarQueryFixtureBase()
        {
            var entitySorters = new Dictionary <Type, Func <dynamic, object> >
            {
                { typeof(City), e => e?.Name },
                { typeof(CogTag), e => e?.Id },
                { typeof(Faction), e => e?.Id },
                { typeof(LocustHorde), e => e?.Id },
                { typeof(Gear), e => e?.SquadId + " " + e?.Nickname },
                { typeof(Officer), e => e?.SquadId + " " + e?.Nickname },
                { typeof(LocustLeader), e => e?.Name },
                { typeof(LocustCommander), e => e?.Name },
                { typeof(Mission), e => e?.Id },
                { typeof(Squad), e => e?.Id },
                { typeof(SquadMission), e => e?.SquadId + " " + e?.MissionId },
                { typeof(Weapon), e => e?.Id },
                { typeof(LocustHighCommand), e => e?.Id }
            };

            var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
            {
                {
                    typeof(City),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.Location, a.Location);
                            Assert.Equal(e[City.NationPropertyName], a[City.NationPropertyName]);
                        }
                    }
                },
                {
                    typeof(CogTag),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Note, a.Note);
                            Assert.Equal(e.GearNickName, a.GearNickName);
                            Assert.Equal(e.GearSquadId, a.GearSquadId);
                        }
                    }
                },
                {
                    typeof(Faction),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.CapitalName, a.CapitalName);
                        }
                    }
                },
                {
                    typeof(Gear),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Nickname, a.Nickname);
                            Assert.Equal(e.SquadId, a.SquadId);
                            Assert.Equal(e.CityOrBirthName, a.CityOrBirthName);
                            Assert.Equal(e.FullName, a.FullName);
                            Assert.Equal(e.HasSoulPatch, a.HasSoulPatch);
                            Assert.Equal(e.LeaderNickname, a.LeaderNickname);
                            Assert.Equal(e.LeaderSquadId, a.LeaderSquadId);
                            Assert.Equal(e.Rank, a.Rank);
                        }
                    }
                },
                {
                    typeof(LocustCommander),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.ThreatLevel, a.ThreatLevel);
                            Assert.Equal(e.DefeatedByNickname, a.DefeatedByNickname);
                            Assert.Equal(e.DefeatedBySquadId, a.DefeatedBySquadId);
                        }
                    }
                },
                {
                    typeof(LocustHorde),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.CapitalName, a.CapitalName);
                            Assert.Equal(e.CommanderName, a.CommanderName);
                            Assert.Equal(e.Eradicated, a.Eradicated);
                        }
                    }
                },
                {
                    typeof(LocustLeader),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.ThreatLevel, a.ThreatLevel);
                        }
                    }
                },
                {
                    typeof(Mission),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.CodeName, a.CodeName);
                            Assert.Equal(e.Rating, a.Rating);
                            Assert.Equal(e.Timeline, a.Timeline);
                        }
                    }
                },
                {
                    typeof(Officer),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Nickname, a.Nickname);
                            Assert.Equal(e.SquadId, a.SquadId);
                            Assert.Equal(e.CityOrBirthName, a.CityOrBirthName);
                            Assert.Equal(e.FullName, a.FullName);
                            Assert.Equal(e.HasSoulPatch, a.HasSoulPatch);
                            Assert.Equal(e.LeaderNickname, a.LeaderNickname);
                            Assert.Equal(e.LeaderSquadId, a.LeaderSquadId);
                            Assert.Equal(e.Rank, a.Rank);
                        }
                    }
                },
                {
                    typeof(Squad),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Name, a.Name);
                        }
                    }
                },
                {
                    typeof(SquadMission),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.SquadId, a.SquadId);
                            Assert.Equal(e.MissionId, a.MissionId);
                        }
                    }
                },
                {
                    typeof(Weapon),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.IsAutomatic, a.IsAutomatic);
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.OwnerFullName, a.OwnerFullName);
                            Assert.Equal(e.SynergyWithId, a.SynergyWithId);
                        }
                    }
                }
            };

            QueryAsserter = new QueryAsserter <GearsOfWarContext>(
                CreateContext,
                new GearsOfWarData(),
                entitySorters,
                entityAsserters);
        }
            public OwnedQueryFixtureBase()
            {
                var entitySorters = new Dictionary <Type, Func <dynamic, object> >
                {
                    { typeof(OwnedPerson), e => e?.Id },
                    { typeof(Branch), e => e?.Id },
                    { typeof(LeafA), e => e?.Id },
                    { typeof(LeafB), e => e?.Id },
                    { typeof(Planet), e => e?.Id },
                    { typeof(Star), e => e?.Id },
                    { typeof(Moon), e => e?.Id },
                    { typeof(Fink), e => e?.Id },
                    { typeof(Barton), e => e?.Id },

                    // owned entities - still need comparers in case they are projected directly
                    { typeof(Order), e => e?.Id },
                    { typeof(Element), e => e?.Id },
                    { typeof(Throned), e => e?.Property },
                };

                var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
                {
                    {
                        typeof(OwnedPerson), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                AssertAddress(e.PersonAddress, a.PersonAddress);
                                AssertOrders(e.Orders, a.Orders);
                            }
                        }
                    },
                    {
                        typeof(Branch), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                AssertAddress(e.PersonAddress, a.PersonAddress);
                                AssertAddress(e.BranchAddress, a.BranchAddress);
                                AssertOrders(e.Orders, a.Orders);
                            }
                        }
                    },
                    {
                        typeof(LeafA), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                AssertAddress(e.PersonAddress, a.PersonAddress);
                                AssertAddress(e.BranchAddress, a.BranchAddress);
                                AssertAddress(e.LeafAAddress, a.LeafAAddress);
                                AssertOrders(e.Orders, a.Orders);
                            }
                        }
                    },
                    {
                        typeof(LeafB), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                AssertAddress(e.PersonAddress, a.PersonAddress);
                                AssertAddress(e.LeafBAddress, a.LeafBAddress);
                                AssertOrders(e.Orders, a.Orders);
                            }
                        }
                    },
                    {
                        typeof(Planet), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.StarId, a.StarId);
                            }
                        }
                    },
                    {
                        typeof(Star), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.Name, a.Name);
                                Assert.Equal(e.Composition.Count, a.Composition.Count);
                                for (var i = 0; i < e.Composition.Count; i++)
                                {
                                    Assert.Equal(e.Composition[i].Id, a.Composition[i].Id);
                                    Assert.Equal(e.Composition[i].Name, a.Composition[i].Name);
                                    Assert.Equal(e.Composition[i].StarId, a.Composition[i].StarId);
                                }
                            }
                        }
                    },
                    {
                        typeof(Moon), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.PlanetId, a.PlanetId);
                                Assert.Equal(e.Diameter, a.Diameter);
                            }
                        }
                    },
                    {
                        typeof(Fink), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                            }
                        }
                    },
                    {
                        typeof(Barton), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.Simple, a.Simple);
                                Assert.Equal(e.Throned.Property, a.Throned.Property);
                            }
                        }
                    },

                    // owned entities - still need comparers in case they are projected directly
                    {
                        typeof(Order), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                            }
                        }
                    },
                    {
                        typeof(Element), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Id, a.Id);
                                Assert.Equal(e.Name, a.Name);
                                Assert.Equal(e.StarId, a.StarId);
                            }
                        }
                    },
                    {
                        typeof(Throned), (e, a) =>
                        {
                            Assert.Equal(e == null, a == null);
                            if (a != null)
                            {
                                Assert.Equal(e.Property, a.Property);
                            }
                        }
                    },
                };

                QueryAsserter = new QueryAsserter <PoolableDbContext>(
                    CreateContext,
                    new OwnedQueryData(),
                    entitySorters,
                    entityAsserters);
            }
        protected ParameterizedQueryFixtureBase()
        {
            var entitySorters = new Dictionary <Type, Func <dynamic, object> >
            {
                { typeof(Person), e => e?.FirstName + e?.LastName },
                { typeof(Location), e => e?.Location },
                { typeof(RainbowType), e => e?.Name },
                { typeof(RainbowSighting), e => e?.SeenTime }
            };

            var entityAsserters = new Dictionary <Type, Action <dynamic, dynamic> >
            {
                {
                    typeof(Person),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.FirstName, a.FirstName);
                            Assert.Equal(e.LastName, a.LastName);
                        }
                    }
                },
                {
                    typeof(RainbowType),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.NumberOfRainbows, a.NumberOfRainbows);
                        }
                    }
                },
                {
                    typeof(Location),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.Name, a.Name);
                            Assert.Equal(e.Longitude, a.Longitude);
                            Assert.Equal(e.Latitude, a.Latitude);
                        }
                    }
                },
                {
                    typeof(RainbowSighting),
                    (e, a) =>
                    {
                        Assert.Equal(e == null, a == null);

                        if (a != null)
                        {
                            Assert.Equal(e.Id, a.Id);
                            Assert.Equal(e.RainbowTypeId, a.RainbowTypeId);
                            Assert.Equal(e.PersonId, a.PersonId);
                            Assert.Equal(e.LocationId, a.LocationId);
                            Assert.Equal(e.SeenTime, a.SeenTime);
                            Assert.Equal(e.Duration, a.Duration);
                        }
                    }
                }
            };

            QueryAsserter = new QueryAsserter <RainbowsContext>(
                CreateContext,
                new RainbowsData(),
                entitySorters,
                entityAsserters);
        }