public RasDialService(IRasApi32 api, IRasHangUp hangUpService, IRasDialExtensionsBuilder extensionsBuilder, IRasDialParamsBuilder paramsBuilder, IExceptionPolicy exceptionPolicy, IRasDialCallbackHandler callbackHandler, IMarshaller marshaller) { this.api = api ?? throw new ArgumentNullException(nameof(api)); this.hangUpService = hangUpService ?? throw new ArgumentNullException(nameof(hangUpService)); this.extensionsBuilder = extensionsBuilder ?? throw new ArgumentNullException(nameof(extensionsBuilder)); this.paramsBuilder = paramsBuilder ?? throw new ArgumentNullException(nameof(paramsBuilder)); this.exceptionPolicy = exceptionPolicy ?? throw new ArgumentNullException(nameof(exceptionPolicy)); this.callbackHandler = callbackHandler ?? throw new ArgumentNullException(nameof(callbackHandler)); this.marshaller = marshaller ?? throw new ArgumentNullException(nameof(marshaller)); callback = callbackHandler.OnCallback; }
public RasDialService(IRasApi32 api, IRasHangUp hangUpService, IRasDialExtensionsBuilder extensionsBuilder, IRasDialParamsBuilder paramsBuilder, IExceptionPolicy exceptionPolicy, IRasDialCallbackHandler callbackHandler, ITaskCompletionSourceFactory completionSourceFactory, ITaskCancellationSourceFactory cancellationSourceFactory) { this.api = api ?? throw new ArgumentNullException(nameof(api)); this.hangUpService = hangUpService ?? throw new ArgumentNullException(nameof(hangUpService)); this.extensionsBuilder = extensionsBuilder ?? throw new ArgumentNullException(nameof(extensionsBuilder)); this.paramsBuilder = paramsBuilder ?? throw new ArgumentNullException(nameof(paramsBuilder)); this.exceptionPolicy = exceptionPolicy ?? throw new ArgumentNullException(nameof(exceptionPolicy)); this.callbackHandler = callbackHandler ?? throw new ArgumentNullException(nameof(callbackHandler)); this.completionSourceFactory = completionSourceFactory ?? throw new ArgumentNullException(nameof(completionSourceFactory)); this.cancellationSourceFactory = cancellationSourceFactory ?? throw new ArgumentNullException(nameof(cancellationSourceFactory)); callback = callbackHandler.OnCallback; }
public void RasDialAsExpected() { var lpRasDialExtensions = new RASDIALEXTENSIONS(); var lpszPhoneBook = @"C:\Users\My.pbk"; var lpRasDialParams = new RASDIALPARAMS(); var dwNotifierType = NotifierType.RasDialFunc2; RasDialFunc2 lpvNotifier = null; var lphRasConn = IntPtr.Zero; api.Setup(o => o.RasDial(ref It.Ref <RASDIALEXTENSIONS> .IsAny, lpszPhoneBook, ref It.Ref <RASDIALPARAMS> .IsAny, dwNotifierType, lpvNotifier, out It.Ref <IntPtr> .IsAny)).Returns(new RasDialCallback( (ref RASDIALEXTENSIONS o1, string o2, ref RASDIALPARAMS o3, NotifierType o4, RasDialFunc2 o5, out IntPtr o6) => { o6 = new IntPtr(1); return(SUCCESS); })); eventLoggingPolicy.Setup(o => o.LogEvent(It.IsAny <EventLevel>(), It.IsAny <PInvokeInt32CallCompletedTraceEvent>())).Callback(new LogEventCallback( (level, o1) => { Assert.AreEqual(EventLevel.Verbose, level); var eventData = (PInvokeInt32CallCompletedTraceEvent)o1; Assert.True(eventData.Args.ContainsKey(nameof(lpRasDialExtensions))); Assert.True(eventData.Args.ContainsKey(nameof(lpszPhoneBook))); Assert.True(eventData.Args.ContainsKey(nameof(lpRasDialParams))); Assert.True(eventData.Args.ContainsKey(nameof(dwNotifierType))); Assert.True(eventData.Args.ContainsKey(nameof(lpvNotifier))); Assert.True(eventData.OutArgs.ContainsKey(nameof(lphRasConn))); Assert.True(eventData.Duration > TimeSpan.Zero); Assert.AreEqual(SUCCESS, eventData.Result); })).Verifiable(); var target = new RasApi32LoggingAdvice(api.Object, eventLoggingPolicy.Object); var result = target.RasDial(ref lpRasDialExtensions, lpszPhoneBook, ref lpRasDialParams, dwNotifierType, null, out lphRasConn); eventLoggingPolicy.Verify(); Assert.AreEqual(SUCCESS, result); Assert.AreEqual(new IntPtr(1), lphRasConn); }
public int RasDial(ref RASDIALEXTENSIONS lpRasDialExtensions, string lpszPhoneBook, ref RASDIALPARAMS lpRasDialParams, NotifierType dwNotifierType, RasDialFunc2 lpvNotifier, out IntPtr lphRasConn) { return(UnsafeNativeMethods.RasDial(ref lpRasDialExtensions, lpszPhoneBook, ref lpRasDialParams, dwNotifierType, lpvNotifier, out lphRasConn)); }
public int RasDial(ref RASDIALEXTENSIONS lpRasDialExtensions, string lpszPhoneBook, ref RASDIALPARAMS lpRasDialParams, NotifierType dwNotifierType, RasDialFunc2 lpvNotifier, out IntPtr lphRasConn) { var stopwatch = Stopwatch.StartNew(); var result = AttachedObject.RasDial(ref lpRasDialExtensions, lpszPhoneBook, ref lpRasDialParams, dwNotifierType, lpvNotifier, out lphRasConn); stopwatch.Stop(); var callEvent = new PInvokeInt32CallCompletedTraceEvent { DllName = RasApi32Dll, Duration = stopwatch.Elapsed, MethodName = nameof(RasDial), Result = result, }; callEvent.Args.Add(nameof(lpRasDialExtensions), lpRasDialExtensions); callEvent.Args.Add(nameof(lpszPhoneBook), lpszPhoneBook); callEvent.Args.Add(nameof(lpRasDialParams), lpRasDialParams); callEvent.Args.Add(nameof(dwNotifierType), dwNotifierType); callEvent.Args.Add(nameof(lpvNotifier), lpvNotifier); callEvent.OutArgs.Add(nameof(lphRasConn), lphRasConn); LogVerbose(callEvent); return(result); }