コード例 #1
0
        public void Instantiate_Should_Return_VWOClient_For_Valid_Settings_File_And_Call_Settings_Processor()
        {
            var validSettings = new FileReaderApiCaller().Execute <Settings>(null);
            var mockValidator = Mock.GetValidator();

            VWO.Configure(mockValidator.Object);
            var mockSettingProcessor = Mock.GetSettingsProcessor();

            VWO.Configure(mockSettingProcessor.Object);

            var vwoClient = VWO.Launch(validSettings);

            Assert.NotNull(vwoClient);
            Assert.IsType <VWO>(vwoClient);

            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.IsAny <Settings>()), Times.Once);
            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.Is <Settings>(val => ReferenceEquals(val, validSettings))), Times.Once);
        }
コード例 #2
0
        public void Launch_EventBatching_Queue_Size_Tests()
        {
            var validSettings = new FileReaderApiCaller().Execute <Settings>(null);
            var mockValidator = Mock.GetValidator();

            VWO.Configure(mockValidator.Object);
            var mockSettingProcessor = Mock.GetSettingsProcessor();

            VWO.Configure(mockSettingProcessor.Object);
            BatchEventData batchData = new BatchEventData();

            batchData.EventsPerRequest    = 4;
            batchData.RequestTimeInterval = 20;
            batchData.FlushCallback       = new FlushCallback(); //Callback
            var vwoClient = VWO.Launch(validSettings, true, null, batchData);

            Assert.NotNull(vwoClient);
            Assert.Equal(0, vwoClient.getBatchEventQueue().BatchQueueCount());


            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.IsAny <Settings>()), Times.Once);
            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.Is <Settings>(val => ReferenceEquals(val, validSettings))), Times.Once);
        }
コード例 #3
0
        public void Instantiate_Should_Return_VWOClient_For_Valid_Settings_File_And_Call_Settings_Processor_With_EventBatching()
        {
            var validSettings = new FileReaderApiCaller().Execute <Settings>(null);
            var mockValidator = Mock.GetValidator();

            VWO.Configure(mockValidator.Object);
            var mockSettingProcessor = Mock.GetSettingsProcessor();

            VWO.Configure(mockSettingProcessor.Object);


            BatchEventData batchData = new BatchEventData();

            batchData.EventsPerRequest    = 4;
            batchData.RequestTimeInterval = 20;
            batchData.FlushCallback       = new FlushCallback(); //Callback
            var vwoClient = VWO.Launch(validSettings, true, null, batchData);

            Assert.NotNull(vwoClient);
            Assert.IsType <VWO>(vwoClient);

            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.IsAny <Settings>()), Times.Once);
            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.Is <Settings>(val => ReferenceEquals(val, validSettings))), Times.Once);
        }
コード例 #4
0
        public void Launch_EventBatching_Validation()
        {
            // "Event Batching Queue should be undefined if batchEventsData is not passed"
            var validSettings = new FileReaderApiCaller().Execute <Settings>(null);
            var mockValidator = Mock.GetValidator();

            VWO.Configure(mockValidator.Object);
            var mockSettingProcessor = Mock.GetSettingsProcessor();

            VWO.Configure(mockSettingProcessor.Object);


            var vwoClient = VWO.Launch(validSettings, true);

            Assert.NotNull(vwoClient);
            Assert.Null(vwoClient.getBatchEventQueue());
            Assert.IsType <VWO>(vwoClient);

            //"Event batching Queue should be defined if batchEventsData is passed"
            BatchEventData batchData = new BatchEventData();

            batchData.EventsPerRequest    = 4;
            batchData.RequestTimeInterval = 20;
            batchData.FlushCallback       = new FlushCallback();

            var vwoClientBatch = VWO.Launch(validSettings, true, null, batchData);

            Assert.NotNull(vwoClientBatch);

            Assert.Equal(0, vwoClientBatch.getBatchEventQueue().BatchQueueCount());
            Assert.Equal(4, vwoClientBatch.getBatchEventQueue().eventsPerRequest);
            Assert.Equal(20, vwoClientBatch.getBatchEventQueue().requestTimeInterval);

            Assert.IsType <VWO>(vwoClientBatch);

            //"Event batching Queue should be defined if batchEventsData is passed even wrong format"

            BatchEventData batchDataWrongFormat = new BatchEventData();


            var vwoClientBatchDefault = VWO.Launch(validSettings, true, null, batchDataWrongFormat);

            Assert.NotNull(vwoClientBatchDefault);
            Assert.Equal(0, vwoClientBatchDefault.getBatchEventQueue().BatchQueueCount());
            Assert.Equal(100, vwoClientBatchDefault.getBatchEventQueue().eventsPerRequest);
            Assert.Equal(600, vwoClientBatchDefault.getBatchEventQueue().requestTimeInterval);
            Assert.IsType <VWO>(vwoClientBatchDefault);

            //"Event batching Queue should be defined if batchEventsData is passed null value"
            BatchEventData batchDataNullValue = new BatchEventData();

            batchDataNullValue.EventsPerRequest    = null;
            batchDataNullValue.RequestTimeInterval = null;
            batchDataNullValue.FlushCallback       = null;

            var vwoClientBatchNull = VWO.Launch(validSettings, true, null, batchDataNullValue);

            Assert.NotNull(vwoClientBatchNull);
            Assert.Equal(0, vwoClientBatchNull.getBatchEventQueue().BatchQueueCount());
            Assert.Equal(100, vwoClientBatchNull.getBatchEventQueue().eventsPerRequest);
            Assert.Equal(600, vwoClientBatchNull.getBatchEventQueue().requestTimeInterval);
            Assert.IsType <VWO>(vwoClientBatchNull);
            //"Event batching Queue should be defined if batchEventsData cross the limits"
            BatchEventData batchDataLimitCheck = new BatchEventData();

            batchDataLimitCheck.EventsPerRequest    = 6000;
            batchDataLimitCheck.RequestTimeInterval = 0;
            batchDataLimitCheck.FlushCallback       = null;

            var vwoClientBatchLimit = VWO.Launch(validSettings, true, null, batchDataLimitCheck);

            Assert.NotNull(vwoClientBatchLimit);
            Assert.Equal(0, vwoClientBatchLimit.getBatchEventQueue().BatchQueueCount());
            Assert.Equal(100, vwoClientBatchLimit.getBatchEventQueue().eventsPerRequest);
            Assert.Equal(600, vwoClientBatchLimit.getBatchEventQueue().requestTimeInterval);
            Assert.IsType <VWO>(vwoClientBatchLimit);
            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.IsAny <Settings>()), Times.Exactly(5));
            mockSettingProcessor.Verify(mock => mock.ProcessAndBucket(It.Is <Settings>(val => ReferenceEquals(val, validSettings))), Times.Exactly(5));
        }