public void ThrowsAnExceptionWhenConnectionIsNull()
        {
            var api             = new Mock <IRasApi32>();
            var exceptionPolicy = new Mock <IExceptionPolicy>();

            var target = new RasClearConnectionStatisticsService(api.Object, exceptionPolicy.Object);

            Assert.Throws <ArgumentNullException>(() => target.ClearConnectionStatistics(null));
        }
        public void ClearsTheStatisticsAsExpected()
        {
            var handle = new IntPtr(1);

            var api = new Mock <IRasApi32>();

            api.Setup(o => o.RasClearConnectionStatistics(handle)).Returns(SUCCESS).Verifiable();

            var exceptionPolicy = new Mock <IExceptionPolicy>();

            var connection = new Mock <IRasConnection>();

            connection.Setup(o => o.Handle).Returns(handle);

            var target = new RasClearConnectionStatisticsService(api.Object, exceptionPolicy.Object);

            target.ClearConnectionStatistics(connection.Object);

            api.Verify();
        }
        public void ThrowsAnExceptionWhenTheApiResultIsNonZero()
        {
            var handle = new IntPtr(1);

            var api = new Mock <IRasApi32>();

            api.Setup(o => o.RasClearConnectionStatistics(handle)).Returns(ERROR_INVALID_PARAMETER);

            var exceptionPolicy = new Mock <IExceptionPolicy>();

            exceptionPolicy.Setup(o => o.Create(ERROR_INVALID_PARAMETER)).Returns(new TestException());

            var connection = new Mock <IRasConnection>();

            connection.Setup(o => o.Handle).Returns(handle);

            var target = new RasClearConnectionStatisticsService(api.Object, exceptionPolicy.Object);

            Assert.Throws <TestException>(() => target.ClearConnectionStatistics(connection.Object));

            api.Verify();
        }