Example #1
0
        public override void AssertSingleResult <TItem1>(
            Func <IQueryable <TItem1>, object> actualQuery,
            Func <IQueryable <TItem1>, object> expectedQuery,
            Action <object, object> asserter = null,
            int entryCount = 0)
        {
            using (var context = _contextCreator())
            {
                var actual   = actualQuery(SetExtractor.Set <TItem1>(context));
                var expected = expectedQuery(ExpectedData.Set <TItem1>());

                if (asserter == null &&
                    expected != null)
                {
                    _entityAsserters.TryGetValue(expected.GetType(), out asserter);
                }

                if (asserter != null)
                {
                    asserter(expected, actual);
                }
                else
                {
                    Assert.Equal(expected, actual);
                }

                Assert.Equal(entryCount, context.ChangeTracker.Entries().Count());
            }
        }
Example #2
0
        public override async Task AssertQueryScalar <TItem1, TItem2, TResult>(
            Func <IQueryable <TItem1>, IQueryable <TItem2>, IQueryable <TResult> > actualQuery,
            Func <IQueryable <TItem1>, IQueryable <TItem2>, IQueryable <TResult> > expectedQuery,
            bool assertOrder = false,
            bool isAsync     = false)
        {
            using (var context = _contextCreator())
            {
                var actual = isAsync
                    ? await actualQuery(
                    SetExtractor.Set <TItem1>(context),
                    SetExtractor.Set <TItem2>(context)).ToArrayAsync()
                    : actualQuery(
                    SetExtractor.Set <TItem1>(context),
                    SetExtractor.Set <TItem2>(context)).ToArray();

                var expected = expectedQuery(
                    ExpectedData.Set <TItem1>(),
                    ExpectedData.Set <TItem2>()).ToArray();

                TestHelpers.AssertResults(
                    expected,
                    actual,
                    e => e,
                    Assert.Equal,
                    assertOrder);
            }
        }
Example #3
0
        public override async Task AssertQuery <TItem1, TItem2, TItem3>(
            Func <IQueryable <TItem1>, IQueryable <TItem2>, IQueryable <TItem3>, IQueryable <object> > actualQuery,
            Func <IQueryable <TItem1>, IQueryable <TItem2>, IQueryable <TItem3>, IQueryable <object> > expectedQuery,
            Func <dynamic, object> elementSorter      = null,
            Action <dynamic, dynamic> elementAsserter = null,
            bool assertOrder = false,
            int entryCount   = 0,
            bool isAsync     = false)
        {
            using (var context = _contextCreator())
            {
                var actual = isAsync
                    ? await actualQuery(
                    SetExtractor.Set <TItem1>(context),
                    SetExtractor.Set <TItem2>(context),
                    SetExtractor.Set <TItem3>(context)).ToArrayAsync()
                    : actualQuery(
                    SetExtractor.Set <TItem1>(context),
                    SetExtractor.Set <TItem2>(context),
                    SetExtractor.Set <TItem3>(context)).ToArray();

                var expected = expectedQuery(
                    ExpectedData.Set <TItem1>(),
                    ExpectedData.Set <TItem2>(),
                    ExpectedData.Set <TItem3>()).ToArray();

                if (!assertOrder &&
                    elementSorter == null &&
                    expected.Length > 0 &&
                    expected[0] != null)
                {
                    _entitySorters.TryGetValue(expected[0].GetType(), out elementSorter);
                }

                if (elementAsserter == null &&
                    expected.Length > 0 &&
                    expected[0] != null)
                {
                    _entityAsserters.TryGetValue(expected[0].GetType(), out elementAsserter);
                }

                TestHelpers.AssertResults(
                    expected,
                    actual,
                    elementSorter,
                    elementAsserter,
                    assertOrder);

                Assert.Equal(entryCount, context.ChangeTracker.Entries().Count());
            }
        }
Example #4
0
 public override void AssertQueryScalar <TItem1, TResult>(
     Func <IQueryable <TItem1>, IQueryable <TResult?> > actualQuery,
     Func <IQueryable <TItem1>, IQueryable <TResult?> > expectedQuery,
     bool assertOrder = false)
 {
     using (var context = _contextCreator())
     {
         var actual   = actualQuery(SetExtractor.Set <TItem1>(context)).ToArray();
         var expected = expectedQuery(ExpectedData.Set <TItem1>()).ToArray();
         TestHelpers.AssertResultsNullable(
             expected,
             actual,
             e => e,
             Assert.Equal,
             assertOrder);
     }
 }