Beispiel #1
0
        public void TestConstructorSuccess()
        {
            string                senderSource          = "senderSource";
            Option <string>       receiverSource        = Option.Some("receiverSource");
            int                   batchSize             = 10;
            string                resultType            = "resultType1";
            NetworkControllerType networkControllerType = NetworkControllerType.Offline;

            var mockSenderStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var senderResults     = new StoreTestResultCollection <TestOperationResult>(mockSenderStore.Object, batchSize);
            var mockReceiverStore = new Mock <ISequentialStore <TestOperationResult> >();
            var receiverResults   = Option.Some <ITestResultCollection <TestOperationResult> >(
                new StoreTestResultCollection <TestOperationResult>(mockReceiverStore.Object, batchSize));

            var reportGenerator = new DirectMethodReportGenerator(
                TestDescription,
                Guid.NewGuid().ToString(),
                senderSource,
                senderResults,
                receiverSource,
                receiverResults,
                resultType,
                NetworkStatusTimeline,
                networkControllerType);

            Assert.Equal(TestDescription, reportGenerator.TestDescription);
            Assert.Equal(receiverSource, reportGenerator.ReceiverSource);
            Assert.Equal(senderResults, reportGenerator.SenderTestResults);
            Assert.Equal(senderSource, reportGenerator.SenderSource);
            Assert.Equal(receiverResults, reportGenerator.ReceiverTestResults);
            Assert.Equal(resultType, reportGenerator.ResultType);
        }
Beispiel #2
0
        public async Task TestCreateReportAsyncWithEmptyResults()
        {
            string senderSource   = "senderSource";
            string receiverSource = "receiverSource";
            int    batchSize      = 10;
            NetworkControllerType networkControllerType = NetworkControllerType.Offline;

            var mockSenderStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var senderResults     = new StoreTestResultCollection <TestOperationResult>(mockSenderStore.Object, batchSize);
            var mockReceiverStore = new Mock <ISequentialStore <TestOperationResult> >();
            var receiverResults   = Option.Some <ITestResultCollection <TestOperationResult> >(
                new StoreTestResultCollection <TestOperationResult>(mockReceiverStore.Object, batchSize));

            var reportGenerator = new DirectMethodReportGenerator(
                TestDescription,
                Guid.NewGuid().ToString(),
                senderSource,
                senderResults,
                Option.Some(receiverSource),
                receiverResults,
                "resultType1",
                NetworkStatusTimeline,
                networkControllerType);

            var report = (DirectMethodReport)await reportGenerator.CreateReportAsync();

            Assert.Equal(0UL, report.NetworkOnSuccess);
            Assert.Equal(0UL, report.NetworkOffSuccess);
            Assert.Equal(0UL, report.NetworkOnToleratedSuccess);
            Assert.Equal(0UL, report.NetworkOffToleratedSuccess);
            Assert.Equal(0UL, report.NetworkOnFailure);
            Assert.Equal(0UL, report.NetworkOffFailure);
            Assert.Equal(0UL, report.MismatchSuccess);
            Assert.Equal(0UL, report.MismatchFailure);
        }
        public async Task TestCreateReportAsyncWithEmptyResults()
        {
            string expectedSource = "expectedSource";
            string actualSource   = "actualSource";
            int    batchSize      = 10;

            var mockExpectedStore = new Mock <ISequentialStore <TestOperationResult> >();
            var expectedResults   = new StoreTestResultCollection <TestOperationResult>(mockExpectedStore.Object, batchSize);
            var mockActualStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var actualResults     = new StoreTestResultCollection <TestOperationResult>(mockActualStore.Object, batchSize);

            var reportGenerator = new DirectMethodReportGenerator(
                Guid.NewGuid().ToString(),
                expectedSource,
                expectedResults,
                actualSource,
                actualResults,
                "resultType1",
                new DirectMethodTestOperationResultComparer(),
                NetworkStatusTimeline);

            var report = (DirectMethodReport)await reportGenerator.CreateReportAsync();

            Assert.Equal(0UL, report.NetworkOnSuccess);
            Assert.Equal(0UL, report.NetworkOffSuccess);
            Assert.Equal(0UL, report.NetworkOnToleratedSuccess);
            Assert.Equal(0UL, report.NetworkOffToleratedSuccess);
            Assert.Equal(0UL, report.NetworkOnFailure);
            Assert.Equal(0UL, report.NetworkOffFailure);
            Assert.Equal(0UL, report.MismatchSuccess);
            Assert.Equal(0UL, report.MismatchFailure);
        }
        public void TestConstructorSuccess()
        {
            string expectedSource = "expectedSource";
            string actualSource   = "actualSource";
            int    batchSize      = 10;
            string resultType     = "resultType1";

            var mockExpectedStore = new Mock <ISequentialStore <TestOperationResult> >();
            var expectedResults   = new StoreTestResultCollection <TestOperationResult>(mockExpectedStore.Object, batchSize);
            var mockActualStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var actualResults     = new StoreTestResultCollection <TestOperationResult>(mockActualStore.Object, batchSize);

            var reportGenerator = new DirectMethodReportGenerator(
                Guid.NewGuid().ToString(),
                expectedSource,
                expectedResults,
                actualSource,
                actualResults,
                resultType,
                new DirectMethodTestOperationResultComparer(),
                NetworkStatusTimeline);

            Assert.Equal(actualSource, reportGenerator.ActualSource);
            Assert.Equal(actualResults, reportGenerator.ActualTestResults);
            Assert.Equal(expectedSource, reportGenerator.ExpectedSource);
            Assert.Equal(expectedResults, reportGenerator.ExpectedTestResults);
            Assert.Equal(resultType, reportGenerator.ResultType);
            Assert.Equal(typeof(DirectMethodTestOperationResultComparer), reportGenerator.TestResultComparer.GetType());
        }
Beispiel #5
0
        public async Task TestCreateReportWithSenderResultsOnlyAsync(
            IEnumerable <ulong> senderStoreValues,
            IEnumerable <HttpStatusCode> statusCodes,
            IEnumerable <DateTime> timestamps,
            int batchSize,
            ulong expectedNetworkOnSuccess,
            ulong expectedNetworkOffSuccess,
            ulong expectedNetworkOnToleratedSuccess,
            ulong expectedNetworkOffToleratedSuccess,
            ulong expectedNetworkOnFailure,
            ulong expectedNetworkOffFailure,
            ulong expectedMismatchSuccess,
            ulong expectedMismatchFailure,
            bool expectedIsPassed,
            NetworkControllerType networkControllerType = NetworkControllerType.Offline)
        {
            string senderSource = "senderSource";
            string resultType   = TestOperationResultType.DirectMethod.ToString();

            var mockSenderStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var senderResults     = new StoreTestResultCollection <TestOperationResult>(mockSenderStore.Object, batchSize);
            var mockReceiverStore = new Mock <ISequentialStore <TestOperationResult> >();
            var receiverResults   = Option.None <ITestResultCollection <TestOperationResult> >();

            var reportGenerator = new DirectMethodReportGenerator(
                TestDescription,
                Guid.NewGuid().ToString(),
                senderSource,
                senderResults,
                Option.None <string>(),
                receiverResults,
                resultType,
                NetworkStatusTimeline,
                networkControllerType);

            var senderStoreData = GetSenderStoreData(senderSource, resultType, senderStoreValues, statusCodes, timestamps, Guid.NewGuid());

            for (int i = 0; i < senderStoreData.Count; i += batchSize)
            {
                int startingOffset = i;
                mockSenderStore.Setup(s => s.GetBatch(startingOffset, batchSize)).ReturnsAsync(senderStoreData.Skip(startingOffset).Take(batchSize));
            }

            var report = (DirectMethodReport)await reportGenerator.CreateReportAsync();

            Assert.Equal(expectedNetworkOnSuccess, report.NetworkOnSuccess);
            Assert.Equal(expectedNetworkOffSuccess, report.NetworkOffSuccess);
            Assert.Equal(expectedNetworkOnToleratedSuccess, report.NetworkOnToleratedSuccess);
            Assert.Equal(expectedNetworkOffToleratedSuccess, report.NetworkOffToleratedSuccess);
            Assert.Equal(expectedNetworkOnFailure, report.NetworkOnFailure);
            Assert.Equal(expectedNetworkOffFailure, report.NetworkOffFailure);
            Assert.Equal(expectedMismatchSuccess, report.MismatchSuccess);
            Assert.Equal(expectedMismatchFailure, report.MismatchFailure);
            Assert.Equal(expectedIsPassed, report.IsPassed);
        }
        public async Task TestCreateReportAsync(
            IEnumerable <string> expectedStoreValues,
            IEnumerable <string> actualStoreValues,
            IEnumerable <int> statusCodes,
            IEnumerable <DateTime> timestamps,
            int batchSize,
            ulong expectedNetworkOnSuccess,
            ulong expectedNetworkOffSuccess,
            ulong expectedNetworkOnToleratedSuccess,
            ulong expectedNetworkOffToleratedSuccess,
            ulong expectedNetworkOnFailure,
            ulong expectedNetworkOffFailure,
            ulong expectedMismatchSuccess,
            ulong expectedMismatchFailure,
            bool expectedIsPassed)
        {
            string expectedSource = "expectedSource";
            string actualSource   = "actualSource";
            string resultType     = TestOperationResultType.DirectMethod.ToString();

            var mockExpectedStore = new Mock <ISequentialStore <TestOperationResult> >();
            var expectedResults   = new StoreTestResultCollection <TestOperationResult>(mockExpectedStore.Object, batchSize);
            var mockActualStore   = new Mock <ISequentialStore <TestOperationResult> >();
            var actualResults     = new StoreTestResultCollection <TestOperationResult>(mockActualStore.Object, batchSize);

            var reportGenerator = new DirectMethodReportGenerator(
                Guid.NewGuid().ToString(),
                expectedSource,
                expectedResults,
                actualSource,
                actualResults,
                resultType,
                new DirectMethodTestOperationResultComparer(),
                NetworkStatusTimeline);

            var expectedStoreData = GetExpectedStoreData(expectedSource, resultType, expectedStoreValues, statusCodes, timestamps);

            for (int i = 0; i < expectedStoreData.Count; i += batchSize)
            {
                int startingOffset = i;
                mockExpectedStore.Setup(s => s.GetBatch(startingOffset, batchSize)).ReturnsAsync(expectedStoreData.Skip(startingOffset).Take(batchSize));
            }

            var actualStoreData = GetActualStoreData(actualSource, resultType, actualStoreValues, timestamps);

            for (int j = 0; j < expectedStoreData.Count; j += batchSize)
            {
                int startingOffset = j;
                mockActualStore.Setup(s => s.GetBatch(startingOffset, batchSize)).ReturnsAsync(actualStoreData.Skip(startingOffset).Take(batchSize));
            }

            var report = (DirectMethodReport)await reportGenerator.CreateReportAsync();

            Assert.Equal(expectedNetworkOnSuccess, report.NetworkOnSuccess);
            Assert.Equal(expectedNetworkOffSuccess, report.NetworkOffSuccess);
            Assert.Equal(expectedNetworkOnToleratedSuccess, report.NetworkOnToleratedSuccess);
            Assert.Equal(expectedNetworkOffToleratedSuccess, report.NetworkOffToleratedSuccess);
            Assert.Equal(expectedNetworkOnFailure, report.NetworkOnFailure);
            Assert.Equal(expectedNetworkOffFailure, report.NetworkOffFailure);
            Assert.Equal(expectedMismatchSuccess, report.MismatchSuccess);
            Assert.Equal(expectedMismatchFailure, report.MismatchFailure);
            Assert.Equal(expectedIsPassed, report.IsPassed);
        }