public void FailAddRemoveThreadSafe() { var called = 0; var value = new Exception(); var token = new MutableAsyncToken <MyClass>(); void FailAction(Exception result) { called++; Assert.AreSame(value, result); token.Remove(FailAction); } token.OnFailure(_ => { token.Remove(FailAction); }); token.OnFailure(FailAction); token.Fail(value); Assert.AreEqual(1, called); }
public void FailPost() { var isCalled = false; var value = new Exception(); var token = new MutableAsyncToken <MyClass>(); token.Fail(value); token .OnFailure(result => { isCalled = true; Assert.AreSame(value, result); }) .OnSuccess(result => throw new Exception()); Assert.IsTrue(isCalled); }
public void FailMulti() { var called = 0; var value = new Exception(); var token = new MutableAsyncToken <MyClass>(); token .OnFailure(result => { called++; Assert.AreSame(value, result); }) .OnSuccess(exception => throw new Exception()); token.Fail(value); token.Fail(value); Assert.AreEqual(2, called); }