Example #1
0
        public void ThrowTest()
        {
            var aspect0 = new MyAspect <IService>();

            IService service = Aspect <IService> .Build(
                new Service(),
                aspect0
                );

            bool externalException = false;

            try
            {
                service.ThrowException();
            }
            catch
            {
                externalException = true;
            }

            Assert.True(aspect0.OnBeforeReached);
            Assert.True(aspect0.OnAroundReached);
            Assert.False(aspect0.OnAfterReached);
            Assert.True(aspect0.OnThrowReached);

            Assert.True(externalException);
        }
Example #2
0
        public async void BasicTaskTest()
        {
            IService service = Aspect <IService> .Build(
                new Service(),
                new MyAspect <IService>()
                );

            bool methodResult = await service.DoWorkAsync();

            Assert.True(methodResult);
            Assert.Equal(3, MyAspect <IService> .Counter);
        }
Example #3
0
        public async void BasicTaskTest2()
        {
            IService service = Aspect <IService> .Build(
                new Service(),
                new MyAspect <IService>()
                );

            Task <bool> methodResultTask = service.DoWorkAsync();

            TaskTestHelper.StartAndHandleAssertion(() =>
            {
                Task.Delay(3000);

                Assert.True(methodResultTask.Result);
                Assert.Equal(3, MyAspect <IService> .Counter);
            });
        }
Example #4
0
        public void AroundTest()
        {
            var aspect0 = new MyAspect <IService>(false, false);

            IService service = Aspect <IService> .Build(
                new Service(),
                aspect0
                );

            bool result = service.DoWork();

            Assert.True(aspect0.OnBeforeReached);
            Assert.True(aspect0.OnAroundReached);
            Assert.False(aspect0.OnAfterReached);
            Assert.False(aspect0.OnThrowReached);

            Assert.False(result);
        }
Example #5
0
        public void BasicCreationTest()
        {
            var aspect0 = new MyAspect <IService>();
            var aspect1 = new MyAspect <IService>();

            IService service = Aspect <IService> .Build(
                new Service(),
                aspect0,
                aspect1
                );

            service.DoWork();

            Assert.True(aspect0.OnBeforeReached);
            Assert.True(aspect0.OnAroundReached);
            Assert.True(aspect0.OnAfterReached);
            Assert.False(aspect0.OnThrowReached);

            Assert.True(aspect1.OnBeforeReached);
            Assert.True(aspect1.OnAroundReached);
            Assert.True(aspect1.OnAfterReached);
            Assert.False(aspect1.OnThrowReached);
        }