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); }
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); }
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); }); }
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); }
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); }