Пример #1
0
        public void CreateAsync_Abyss()
        {
            var createResult = Rand.Array <DummyEntity>();
            IEnumerable <DummyEntity> actualSource = default;
            var middleware = new SpyFilterMiddlewareToCreateAsync(src => {
                actualSource = src;
                return(createResult);
            }, cancelled: false);

            var          nextResult                    = Rand.Array <DummyEntity>();
            DummyContext actualNextContext             = default;
            IEnumerable <DummyEntity> actualNextSource = default;
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = ctx => {
                actualNextContext = ctx;
                return(Task.FromResult <FilterFunc <DummyEntity> >(src => {
                    actualNextSource = src;
                    return nextResult;
                }));
            };

            var context = new DummyContext();
            var source  = new[] { new DummyEntity(), new DummyEntity() };

            new TestCaseRunner()
            .Run(async() => (await middleware.CreateAsync(context, next))(source))
            .Verify((actual, desc) => {
                Assert.AreEqual(nextResult, actual, desc);

                Assert.AreEqual(context, middleware.ActualContext, desc);
                Assert.AreEqual(false, middleware.ActualCancelled, desc);
                Assert.AreEqual(source, actualSource, desc);
                Assert.AreEqual(context, actualNextContext, desc);
                Assert.AreEqual(createResult, actualNextSource, desc);
            }, (Type)null);
        }
Пример #2
0
        public void NullFilter()
        {
            var source = Rand.Array <DummyEntity>();

            new TestCaseRunner()
            .Run(() => FilterMiddleware <DummyContext, DummyEntity> .NullFilter(source))
            .Verify(source, (Type)null);
        }
Пример #3
0
    public static string Group()
    {
        switch (Random.Range(0, 2))
        {
        case 0:
            return("The " + Rand.Array <string>(UtilityScriptsReference.r.Before) + " " + Rand.Array <string>(UtilityScriptsReference.r.Nouns));

        case 1:
            return("The " + Rand.Array <string>(UtilityScriptsReference.r.Before) + " " + Rand.Array <string>(UtilityScriptsReference.r.Nouns) + " of " + Rand.Array <string>(UtilityScriptsReference.r.After));

        case 2:
            return("The " + Rand.Array <string>(UtilityScriptsReference.r.Nouns) + " of " + Rand.Array <string>(UtilityScriptsReference.r.After));
        }
        return(null);
    }
Пример #4
0
        public void CreateAsync_Cancelled()
        {
            FilterFunc <DummyEntity> createResult = _ => Rand.Array <DummyEntity>();
            var middleware = new SpyFilterMiddlewareToCreateAsync(createResult, cancelled: true);
            var context    = new DummyContext();
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = _ => throw new AssertFailedException("next は呼ばれてはいけません。");

            new TestCaseRunner()
            .Run(() => middleware.CreateAsync(context, next))
            .Verify((actual, desc) => {
                Assert.AreEqual(createResult, actual, desc);

                Assert.AreEqual(context, middleware.ActualContext, desc);
                Assert.AreEqual(false, middleware.ActualCancelled, desc);
            }, (Type)null);
        }
Пример #5
0
        public void Invoke()
        {
            FilterFunc <DummyEntity> createAsyncResult = _ => Rand.Array <DummyEntity>();
            var middleware = new SpyFilterMiddlewareToMiddleware(createAsyncResult);
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = _ => Task.FromResult <FilterFunc <DummyEntity> >(__ => Rand.Array <DummyEntity>());
            var context = new DummyContext();

            new TestCaseRunner()
            .Run(() => middleware.Invoke(next)(context))
            .Verify((actual, desc) => {
                Assert.AreEqual(createAsyncResult, actual, desc);

                Assert.AreEqual(context, middleware.ActualContext, desc);
                Assert.AreEqual(next, middleware.ActualNext, desc);
            }, (Type)null);
        }
Пример #6
0
        public void Invoke_NullPredicate()
        {
            var predicateCreator = new SpyPredicateCreator(PredicateMiddleware <DummyContext, DummyEntity> .NullPredicate);
            var middleware       = new PredicateFilterMiddleware <DummyContext, DummyEntity>(predicateCreator.Invoke);
            var context          = new DummyContext();

            FilterFunc <DummyEntity> nextFilter        = _ => Rand.Array <DummyEntity>();
            DummyContext             actualNextContext = default;
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = ctx => {
                actualNextContext = ctx;
                return(Task.FromResult(nextFilter));
            };

            new TestCaseRunner()
            .Run(() => middleware.Invoke(next)(context))
            .Verify((actual, desc) => {
                Assert.AreEqual(nextFilter, actual, desc);

                Assert.AreEqual(context, predicateCreator.ActualContext, desc);
                Assert.AreEqual(context, actualNextContext, desc);
            }, (Type)null);
        }
Пример #7
0
        public void CreateAsync_NullNextFunc()
        {
            FilterFunc <DummyEntity> createResult = _ => Rand.Array <DummyEntity>();
            var middleware = new SpyFilterMiddlewareToCreateAsync(createResult, cancelled: false);
            var context    = new DummyContext();

            DummyContext actualNextContext = default;
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = ctx => {
                actualNextContext = ctx;
                return(Task.FromResult(SpyFilterMiddlewareToCreateAsync.NullFilter));
            };

            new TestCaseRunner()
            .Run(() => middleware.CreateAsync(context, next))
            .Verify((actual, desc) => {
                Assert.AreEqual(createResult, actual, desc);

                Assert.AreEqual(context, middleware.ActualContext, desc);
                Assert.AreEqual(false, middleware.ActualCancelled, desc);
                Assert.AreEqual(context, actualNextContext, desc);
            }, (Type)null);
        }
Пример #8
0
        public void Invoke_Abyss()
        {
            var actualPredicateEntities = new List <DummyEntity>();
            var predicateCreator        = new SpyPredicateCreator(x => {
                actualPredicateEntities.Add(x);
                return(true);
            });
            var middleware = new PredicateFilterMiddleware <DummyContext, DummyEntity>(predicateCreator.Invoke);

            var          nextFilterResult        = Rand.Array <DummyEntity>();
            DummyContext actualNextFilterContext = default;

            DummyEntity[] actualNextFilterSource = default;
            Func <DummyContext, Task <FilterFunc <DummyEntity> > > next = ctx => {
                actualNextFilterContext = ctx;
                return(Task.FromResult <FilterFunc <DummyEntity> >(src => {
                    actualNextFilterSource = src.ToArray();
                    return nextFilterResult;
                }));
            };

            var context = new DummyContext();
            var source  = Rand.Array <DummyEntity>(minLength: 2);

            new TestCaseRunner()
            .Run(async() => (await middleware.Invoke(next)(context))(source))
            .Verify((actual, desc) => {
                Assert.AreEqual(nextFilterResult, actual, desc);

                Assert.AreEqual(context, predicateCreator.ActualContext, desc);
                CollectionAssert.AreEqual(source, actualPredicateEntities, desc);

                Assert.AreEqual(context, actualNextFilterContext, desc);
                CollectionAssert.AreEqual(source, actualNextFilterSource);
            }, (Type)null);
        }