Как стать автором
Обновить

Комментарии 7

Круто, только не thread safe.
Так еще круче:

public class EventTester: IDisposable
{
private readonly Action _postHocTests;

private readonly ManualResetEvent _waitHandle;

private bool _called;

private IAsyncResult _waitToken;

public EventTester(Action postHocTests)
{
_waitHandle = new ManualResetEvent(false);
_postHocTests = postHocTests;
}

#region IDisposable Members

public void Dispose()
{
lock (_waitHandle)
{
Assert.IsTrue(_called, «The event was never handled»);
_postHocTests.EndInvoke(_waitToken);
}
}

#endregion

public void Handler(TSender sender, TArgument args)
{
lock (_waitHandle)
{
_waitHandle.Set();
_waitToken = _postHocTests.BeginInvoke(sender, args, null, null);
}
}

public void Wait(int mullisecondsTimeout)
{
_called = _waitHandle.WaitOne(mullisecondsTimeout);
}
}
Хабр сожрал дженерик парамеры :(
Слышать это с уст веб программера смешно ;)
Ну блин, расслабился понимаешь. Понаделали везде авто экранирования ;)
А зачем тестировать MicrosoftSubscription.Sync.WebDataProvider? Не уверены, что он работает?
по моему не важно, что, главное как тут тестируется. можно ведь другой код так тестить…
В сторону IOCP не пробовали смотреть?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.