// This helper will override all the open methods of the MockCommunicationObject // and record their names into the provided list in the order they are called. private static void InterceptAllCloseMethods(MockCommunicationObject mco, List <string> methodsCalled) { mco.OnClosingOverride = () => { methodsCalled.Add("OnClosing"); mco.DefaultOnClosing(); }; mco.OnCloseOverride = (TimeSpan t) => { methodsCalled.Add("OnClose"); mco.DefaultOnClose(t); }; mco.OnBeginCloseOverride = (TimeSpan t, AsyncCallback c, object s) => { methodsCalled.Add("OnBeginClose"); return(mco.DefaultOnBeginClose(t, c, s)); }; mco.OnClosedOverride = () => { methodsCalled.Add("OnClosed"); mco.DefaultOnClosed(); }; // The OnAbort is considered one of the methods associated with close. mco.OnAbortOverride = () => { methodsCalled.Add("OnAbort"); mco.DefaultOnAbort(); }; }