示例#1
0
        public async Task GetConfigAsyncReturnsTableStoreValueParsedAsObject()
        {
            // Arrange
            var dummyResultObject = new SampleConfiguration
            {
                DataField1 = "value1",
                DataField2 = "value2",
                DataField3 = "value3",
            };

            var expectedStringValue = JsonConvert.SerializeObject(dummyResultObject);
            var tableStore          = A.Fake <IConfigurationRepository>();

            A.CallTo(() => tableStore.GetCloudConfigAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedStringValue);

            var service = new SharedConfigurationService(tableStore, defaultMemoryStore);

            // Act
            var result = await service.GetConfigAsync <SampleConfiguration>(DummyServiceName, DummyKeyName).ConfigureAwait(false);

            // Assert
            result.Should().BeEquivalentTo(JsonConvert.DeserializeObject <SampleConfiguration>(expectedStringValue));
            A.CallTo(() => defaultMemoryStore.GetConfig(A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => defaultMemoryStore.SetConfig(A <string> .Ignored, A <object> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => tableStore.GetCloudConfigAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
        }
示例#2
0
        public async Task GetConfigAsyncThrowsNotImplementedExceptionWhenDataIsEncrypted()
        {
            // Arrange
            var service = new SharedConfigurationService(defaultTableStore, defaultMemoryStore);

            // Assert
            await Assert.ThrowsAsync <NotImplementedException>(async() => await service.GetConfigAsync <string>(DummyServiceName, DummyKeyName, true).ConfigureAwait(false)).ConfigureAwait(false);

            A.CallTo(() => defaultMemoryStore.GetConfig(A <string> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => defaultMemoryStore.SetConfig(A <string> .Ignored, A <object> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => defaultTableStore.GetCloudConfigAsync(A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened();
        }
示例#3
0
        public async Task GetConfigAsyncReturnsTableStoreValueParsedAsString()
        {
            // Arrange
            var expectedStringValue = JsonConvert.SerializeObject("SomeResultValue");
            var tableStore          = A.Fake <IConfigurationRepository>();

            A.CallTo(() => tableStore.GetCloudConfigAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedStringValue);

            var service = new SharedConfigurationService(tableStore, defaultMemoryStore);

            // Act
            var result = await service.GetConfigAsync <string>(DummyServiceName, DummyKeyName).ConfigureAwait(false);

            // Assert
            Assert.Equal(JsonConvert.DeserializeObject <string>(expectedStringValue), result);
            A.CallTo(() => defaultMemoryStore.GetConfig(A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => defaultMemoryStore.SetConfig(A <string> .Ignored, A <object> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => tableStore.GetCloudConfigAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
        }