public void GetAllKeys_DeserializerThrowException_ShouldReturnsWithEmptyArray() { // Arrange configServiceMock.Setup(m => m.GetConfigAsync()).ReturnsAsync(ProjectConfig.Empty); var o = new SettingsWithPreferences(); configDeserializerMock .Setup(m => m.TryDeserialize(It.IsAny <string>(), out o)) .Throws <Exception>(); IConfigCatClient instance = new ConfigCatClient( configServiceMock.Object, loggerMock.Object, evaluatorMock.Object, configDeserializerMock.Object); // Act var actualKeys = instance.GetAllKeys(); // Assert Assert.IsNotNull(actualKeys); Assert.AreEqual(0, actualKeys.Count()); loggerMock.Verify(m => m.Error(It.IsAny <string>()), Times.Once); }
public async Task GetVariationIdAsync_DeserializeFailed_ShouldReturnsWithEmptyArray() { // Arrange configServiceMock.Setup(m => m.GetConfigAsync()).ReturnsAsync(ProjectConfig.Empty); var o = new SettingsWithPreferences(); configDeserializerMock .Setup(m => m.TryDeserialize(It.IsAny <string>(), out o)) .Returns(false); IConfigCatClient instance = new ConfigCatClient( configServiceMock.Object, loggerMock.Object, evaluatorMock.Object, configDeserializerMock.Object); // Act var actual = await instance.GetAllVariationIdAsync(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(0, actual.Count()); loggerMock.Verify(m => m.Warning(It.IsAny <string>()), Times.Once); }
public bool TryDeserialize(string config, out SettingsWithPreferences settings) { if (config == null) { this.logger.Warning("ConfigJson is not present."); settings = null; return(false); } var hash = this.hasher.ComputeHash(config).Hash; if (CompareByteArrays(this.hashToCompare, hash)) { settings = this.lastSerializedSettings; return(true); } using (var stringReader = new StringReader(config)) using (var reader = new JsonTextReader(stringReader)) { this.lastSerializedSettings = settings = this.serializer.Deserialize <SettingsWithPreferences>(reader); } this.hashToCompare = hash; return(true); }