예제 #1
0
        public AnalyticsTransmitterTests()
        {
            environmentTelemetryChecker = new Mock <IEnvironmentSpecFlowTelemetryChecker>();
            analyticsTransmitterSink    = new Mock <IAnalyticsTransmitterSink>();

            sut = new AnalyticsTransmitter(analyticsTransmitterSink.Object, environmentTelemetryChecker.Object);
        }
        public void Setup()
        {
            userUniqueIdStoreStub               = new Mock <IUserUniqueIdStore>();
            enableAnalyticsCheckerStub          = new Mock <IEnableAnalyticsChecker>();
            analyticsTransmitterSink            = new Mock <IAnalyticsTransmitterSink>();
            ideInformationStore                 = new Mock <IIdeInformationStore>();
            projectTargetFrameworksProvider     = new Mock <IProjectTargetFrameworksProvider>();
            currentExtensionVersionProviderStub = new Mock <ICurrentExtensionVersionProvider>();

            currentExtensionVersionProviderStub.Setup(ce => ce.GetCurrentExtensionVersion())
            .Returns(new Version("2019.0"));

            sut = new AnalyticsTransmitter(userUniqueIdStoreStub.Object, enableAnalyticsCheckerStub.Object,
                                           analyticsTransmitterSink.Object, ideInformationStore.Object, projectTargetFrameworksProvider.Object,
                                           currentExtensionVersionProviderStub.Object);
        }
예제 #3
0
        public async Task TransmitSpecFlowProjectCompilingEvent_AnalyticsEnabled_ShouldCallSink()
        {
            // ARRANGE
            var analyticsTransmitterSinkMock            = new Mock <IAnalyticsTransmitterSink>();
            var environmentSpecFlowTelemetryCheckerMock = new Mock <IEnvironmentSpecFlowTelemetryChecker>();

            environmentSpecFlowTelemetryCheckerMock.Setup(m => m.IsSpecFlowTelemetryEnabled())
            .Returns(true);

            var specFlowProjectCompilingEvent = It.IsAny <SpecFlowProjectCompilingEvent>();
            var analyticsTransmitter          = new AnalyticsTransmitter(analyticsTransmitterSinkMock.Object, environmentSpecFlowTelemetryCheckerMock.Object);

            // ACT
            await analyticsTransmitter.TransmitSpecFlowProjectCompilingEvent(specFlowProjectCompilingEvent);

            // ASSERT
            analyticsTransmitterSinkMock.Verify(m => m.TransmitEvent(It.IsAny <IAnalyticsEvent>(), It.IsAny <string>()), Times.Once);
        }
예제 #4
0
        public async Task TryTransmitEvent_AnalyticsDisabled_ShouldNotCallSink()
        {
            // ARRANGE
            var analyticsTransmitterSinkMock            = new Mock <IAnalyticsTransmitterSink>();
            var environmentSpecFlowTelemetryCheckerMock = new Mock <IEnvironmentSpecFlowTelemetryChecker>();

            environmentSpecFlowTelemetryCheckerMock.Setup(m => m.IsSpecFlowTelemetryEnabled())
            .Returns(false);

            var analyticsEventMock   = new Mock <IAnalyticsEvent>();
            var analyticsTransmitter = new AnalyticsTransmitter(analyticsTransmitterSinkMock.Object, environmentSpecFlowTelemetryCheckerMock.Object);

            // ACT
            await analyticsTransmitter.TransmitEvent(analyticsEventMock.Object);

            // ASSERT
            analyticsTransmitterSinkMock.Verify(sink => sink.TransmitEvent(It.IsAny <IAnalyticsEvent>(), It.IsAny <string>()), Times.Never);
        }
예제 #5
0
        public async Task TryTransmitEvent_AnalyticsDisabled_ShouldReturnSuccess()
        {
            // ARRANGE
            var analyticsTransmitterSinkMock            = new Mock <IAnalyticsTransmitterSink>();
            var environmentSpecFlowTelemetryCheckerMock = new Mock <IEnvironmentSpecFlowTelemetryChecker>();

            environmentSpecFlowTelemetryCheckerMock.Setup(m => m.IsSpecFlowTelemetryEnabled())
            .Returns(false);

            var analyticsEventMock   = new Mock <IAnalyticsEvent>();
            var analyticsTransmitter = new AnalyticsTransmitter(analyticsTransmitterSinkMock.Object, environmentSpecFlowTelemetryCheckerMock.Object);

            // ACT
            var result = await analyticsTransmitter.TransmitEvent(analyticsEventMock.Object);

            // ASSERT
            result.Should().BeAssignableTo <ISuccess>();
        }