public void DataSetIsPassedToDataStoreInCorrectOrder()
        {
            // The underlying functionality here is also covered in DataStoreSorterTest, but we want to verify that the
            // client object is actually *using* DataStoreSorter.

            var mockStore = new Mock <IDataStore>();
            var store     = mockStore.Object;
            FullDataSet <ItemDescriptor> receivedData = new FullDataSet <ItemDescriptor>();

            mockStore.Setup(s => s.Init(It.IsAny <FullDataSet <ItemDescriptor> >()))
            .Callback((FullDataSet <ItemDescriptor> data) => {
                receivedData = data;
            });

            mockDataSource.Setup(up => up.Start()).Returns(initTask);

            var config = Configuration.Builder(sdkKey)
                         .DataStore(TestUtils.SpecificDataStore(store))
                         .DataSource(TestUtils.DataSourceWithData(DataStoreSorterTest.DependencyOrderingTestData))
                         .Events(Components.NoEvents)
                         .Logging(Components.Logging(testLogging))
                         .Build();

            using (var client = new LdClient(config))
            {
                Assert.NotNull(receivedData);
                DataStoreSorterTest.VerifyDataSetOrder(receivedData, DataStoreSorterTest.DependencyOrderingTestData,
                                                       DataStoreSorterTest.ExpectedOrderingForSortedDataSet);
            }
        }
示例#2
0
        public void DataSetIsPassedToDataStoreInCorrectOrder()
        {
            // The underlying functionality here is also covered in DataStoreSorterTest, but we want to verify that the
            // client object is actually *using* DataStoreSorter.

            var mockStore = new Mock <IDataStore>();
            var store     = mockStore.Object;
            var dataSink  = new EventSink <FullDataSet <ItemDescriptor> >();

            mockStore.Setup(s => s.Init(It.IsAny <FullDataSet <ItemDescriptor> >()))
            .Callback((FullDataSet <ItemDescriptor> data) => dataSink.Enqueue(data));

            var config = BasicConfig()
                         .DataStore(store.AsSingletonFactory())
                         .DataSource(MockDataSourceWithData(DataStoreSorterTest.DependencyOrderingTestData).AsSingletonFactory())
                         .Build();

            using (var client = new LdClient(config))
            {
                var receivedData = dataSink.ExpectValue();
                DataStoreSorterTest.VerifyDataSetOrder(receivedData, DataStoreSorterTest.DependencyOrderingTestData,
                                                       DataStoreSorterTest.ExpectedOrderingForSortedDataSet);
            }
        }