public void RasEnumDevicesAsExpected() { var lpCb = 0; var lpcDevices = 1; var lpRasDevInfo = new RASDEVINFO[0]; api.Setup(o => o.RasEnumDevices(lpRasDevInfo, ref It.Ref <int> .IsAny, ref It.Ref <int> .IsAny)).Returns(new RasEnumDevicesCallback( (RASDEVINFO[] o1, ref int o2, ref int o3) => { o2 = 1; o3 = 2; 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(lpRasDevInfo))); Assert.AreEqual(0, (int)eventData.Args[nameof(lpCb)]); Assert.AreEqual(1, (int)eventData.Args[nameof(lpcDevices)]); Assert.AreEqual(1, (int)eventData.OutArgs[nameof(lpCb)]); Assert.AreEqual(2, (int)eventData.OutArgs[nameof(lpcDevices)]); Assert.True(eventData.Duration > TimeSpan.Zero); Assert.AreEqual(SUCCESS, eventData.Result); })).Verifiable(); var target = new RasApi32LoggingAdvice(api.Object, eventLoggingPolicy.Object); var result = target.RasEnumDevices(lpRasDevInfo, ref lpCb, ref lpcDevices); eventLoggingPolicy.Verify(); Assert.AreEqual(SUCCESS, result); }
private RasDevice CreateDevice(RASDEVINFO rasDevInfo) { return(deviceTypeFactory.Create(rasDevInfo.szDeviceName, rasDevInfo.szDeviceType)); }