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); }
public void NullFilter() { var source = Rand.Array <DummyEntity>(); new TestCaseRunner() .Run(() => FilterMiddleware <DummyContext, DummyEntity> .NullFilter(source)) .Verify(source, (Type)null); }
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); }
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); }
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); }
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); }
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); }
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); }