Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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;
                    }
                }
            }
        }
Exemplo n.º 4
0
        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);
        }