public void ShouldCallImplementedInterfaceMethod() { var random = new Random(); for (int i = 0; i < 100; i++) { var interceptor1 = new Interceptor1(); var interceptor2 = new Interceptor2(); var interceptor3 = new Interceptor3(); var interceptor4 = new Interceptor4(); var interceptors = new IResponseCachingInterceptor[] { interceptor1, interceptor2, interceptor3, interceptor4 }; //随机组合进行测试 interceptors = interceptors.OrderBy(_ => random.Next()).ToArray(); Console.WriteLine($"time: {i:D3} - order:{string.Join(" -> ", interceptors.Select(m => m.GetType().Name))}"); var interceptorAggregator = new InterceptorAggregator(interceptors); interceptorAggregator.OnCacheStoringAsync(null, null, null, (_, _, _) => Task.FromResult <ResponseCacheEntry>(null)); interceptorAggregator.OnResponseWritingAsync(null, null, (_, _) => Task.FromResult(true)); NormalCheck(interceptors); } }
public void All_interceptors_should_be_called_after_execution() { Interceptor1.Replay(); Interceptor2.Replay(); TheService.Execute(new CommandWithExecutor()); Interceptor1.AssertWasCalled(i => i.OnAfterExecution(null), options => options.IgnoreArguments()); Interceptor2.AssertWasCalled(i => i.OnAfterExecution(null), options => options.IgnoreArguments()); }
public void ShouldShortCircuits() { var random = new Random(); for (int i = 0; i < 100; i++) { var interceptor1 = new Interceptor1(); var interceptor2 = new Interceptor2(); var interceptor3 = new Interceptor3(); var interceptor4 = new Interceptor4(); var shortCircuitsInterceptor = new ShortCircuitsInterceptor(); var interceptors = new IResponseCachingInterceptor[] { interceptor1, interceptor2, interceptor3, interceptor4, shortCircuitsInterceptor }; //随机组合进行测试 interceptors = interceptors.OrderBy(_ => random.Next()).ToArray(); Console.WriteLine($"time: {i:D3} - order:{string.Join(" -> ", interceptors.Select(m => m.GetType().Name))}"); var interceptorAggregator = new InterceptorAggregator(interceptors); interceptorAggregator.OnCacheStoringAsync(null, null, null, (_, _, _) => Task.FromResult <ResponseCacheEntry>(null)); interceptorAggregator.OnResponseWritingAsync(null, null, (_, _) => Task.FromResult(true)); bool shortCircuited = false; foreach (var interceptor in interceptors) { if (shortCircuited) { ShouldNoAnyCalled(interceptor); } else { NormalCheck(interceptor); shortCircuited = interceptor is ShortCircuitsInterceptor; } } } }
public Ship CreateShip(int model, float x, float y, float rot, int id) { Ship ship = null; switch (model) { case 1: { ship = new Interceptor1(contentManager) { CombatManager = _combatManager }; break; } case 2: { ship = new Mule1(contentManager); break; } case 3: { ship = new Collector(contentManager) { CombatManager = _combatManager }; break; } case 4: { ship = new Elephant(contentManager); break; } case 5: { ship = new Unicorn(contentManager); break; } case 6: { ship = new PirateSniper(contentManager) { CombatManager = _combatManager }; break; } case 7: { ship = new PirateBrawler(contentManager); break; } default: { break; } } ship.Position = new Vector2(x, y); ship.Rotation = rot; ship.ID = id; return(ship); }