Example #1
0
        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);
        }
Example #2
0
 private RasDevice CreateDevice(RASDEVINFO rasDevInfo)
 {
     return(deviceTypeFactory.Create(rasDevInfo.szDeviceName, rasDevInfo.szDeviceType));
 }