public void Save_Wraps_SerializationException_As_IOException() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock <ILog>(); var settings = new SettingsRoot(); var testException = new SerializationException("test exception"); IOException thrownException = null; testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); testBundle.MockXmlSerializer.Setup(x => x.Serialize(It.IsAny <TextWriter>(), It.IsAny <object>())).Throws(testException); // Act try { testBundle.SettingsManager.Save(settings); } catch (IOException ex) { thrownException = ex; } // Assert testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny <TextWriter>(), It.IsAny <object>()), Times.Once); Assert.IsNotNull(thrownException); }
public void CreateNewSettings_Returns_New_Object() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var settingsRoot = new SettingsRoot(); testBundle.MockEntityProvider.Setup(x => x.ProvideDefaultSettingsRoot()).Returns(settingsRoot); // Act var settings = testBundle.SettingsManager.CreateNewSettings(); // Assert Assert.AreSame(settingsRoot, settings); testBundle.MockEntityProvider.Verify(x => x.ProvideDefaultSettingsRoot(), Times.Once); }
public void CreateNewSettings_Returns_New_Object() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var settingsRoot = new SettingsRoot(); testBundle.MockEntityProvider.Setup(x => x.ProvideDefaultSettingsRoot()).Returns(settingsRoot); // Act var settings = testBundle.SettingsManager.CreateNewSettings(); // Assert Assert.AreSame(settingsRoot, settings); testBundle.MockEntityProvider.Verify(x => x.ProvideDefaultSettingsRoot(), Times.Once); }
public void Save_Writes_To_Serializer() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock <ILog>(); var settings = new SettingsRoot(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); // Act testBundle.SettingsManager.Save(settings); // Assert testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny <TextWriter>(), It.IsAny <object>()), Times.Once); }
public void Load_Returns_Null_When_File_Does_Not_Exist() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock <ILog>(); testBundle.MockFile.Setup(x => x.Exists(It.IsAny <string>())).Returns(false); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); testBundle.MockXmlSerializer.Setup(x => x.Serialize(It.IsAny <TextWriter>(), It.IsAny <object>())) .Throws(new SerializationException()); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.IsNull(settings); }
public void Load_Returns_Null_When_Failure_To_Read_Settings_File() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock <ILog>(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny <string>())).Returns(true); testBundle.MockEnvironmentUtility.SetupGet(x => x.IsWindowsPlatform).Returns(true); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny <Stream>())).Throws(new SerializationException()); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.IsNull(settings); mockLog.Verify(x => x.Error("Error opening settings file.", It.IsAny <Exception>()), Times.Once); }
public void Load_Returns_Saved_Settings_Object() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockSettingsRoot = new Mock <SettingsRoot>(); var mockLog = new Mock <ILog>(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny <string>())).Returns(true); testBundle.MockEnvironmentUtility.SetupGet(x => x.IsWindowsPlatform).Returns(true); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny <Stream>())).Returns(mockSettingsRoot.Object); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.AreSame(mockSettingsRoot.Object, settings); testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny <TextWriter>(), It.IsAny <object>()), Times.Never); }
public void Load_Returns_Same_Settings_Object_After_Multiple_Calls() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockSettingsRoot = new Mock <SettingsRoot>(); var mockLog = new Mock <ILog>(); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny <Stream>())).Returns(mockSettingsRoot.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny <string>())).Returns(true); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny <Type>())).Returns(mockLog.Object); // Act var s1 = testBundle.SettingsManager.Load(); var s2 = testBundle.SettingsManager.Load(); // Assert Assert.AreSame(mockSettingsRoot.Object, s1); Assert.AreSame(mockSettingsRoot.Object, s2); Assert.AreSame(s1, s2); }
public void Load_Returns_Null_When_Failure_To_Read_Settings_File() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock<ILog>(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny<string>())).Returns(true); testBundle.MockEnvironmentUtility.SetupGet(x => x.IsWindowsPlatform).Returns(true); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny<Stream>())).Throws(new SerializationException()); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.IsNull(settings); mockLog.Verify(x => x.Error("Error opening settings file.", It.IsAny<Exception>()), Times.Once); }
public void Save_Writes_To_Serializer() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock<ILog>(); var settings = new SettingsRoot(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); // Act testBundle.SettingsManager.Save(settings); // Assert testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny<TextWriter>(), It.IsAny<object>()), Times.Once); }
public void Save_Wraps_SerializationException_As_IOException() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock<ILog>(); var settings = new SettingsRoot(); var testException = new SerializationException("test exception"); IOException thrownException = null; testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); testBundle.MockXmlSerializer.Setup(x => x.Serialize(It.IsAny<TextWriter>(), It.IsAny<object>())).Throws(testException); // Act try { testBundle.SettingsManager.Save(settings); } catch (IOException ex) { thrownException = ex; } // Assert testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny<TextWriter>(), It.IsAny<object>()), Times.Once); Assert.IsNotNull(thrownException); }
public void Load_Returns_Saved_Settings_Object() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockSettingsRoot = new Mock<SettingsRoot>(); var mockLog = new Mock<ILog>(); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny<string>())).Returns(true); testBundle.MockEnvironmentUtility.SetupGet(x => x.IsWindowsPlatform).Returns(true); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny<Stream>())).Returns(mockSettingsRoot.Object); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.AreSame(mockSettingsRoot.Object, settings); testBundle.MockXmlSerializer.Verify(x => x.Serialize(It.IsAny<TextWriter>(), It.IsAny<object>()), Times.Never); }
public void Load_Returns_Same_Settings_Object_After_Multiple_Calls() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockSettingsRoot = new Mock<SettingsRoot>(); var mockLog = new Mock<ILog>(); testBundle.MockXmlSerializer.Setup(x => x.Deserialize(It.IsAny<Stream>())).Returns(mockSettingsRoot.Object); testBundle.MockFile.Setup(x => x.Exists(It.IsAny<string>())).Returns(true); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); // Act var s1 = testBundle.SettingsManager.Load(); var s2 = testBundle.SettingsManager.Load(); // Assert Assert.AreSame(mockSettingsRoot.Object, s1); Assert.AreSame(mockSettingsRoot.Object, s2); Assert.AreSame(s1, s2); }
public void Load_Returns_Null_When_File_Does_Not_Exist() { // Arrange var testBundle = new SettingsRepositoryTestBundle(); var mockLog = new Mock<ILog>(); testBundle.MockFile.Setup(x => x.Exists(It.IsAny<string>())).Returns(false); testBundle.MockLogProvider.Setup(x => x.GetLogger(It.IsAny<Type>())).Returns(mockLog.Object); testBundle.MockXmlSerializer.Setup(x => x.Serialize(It.IsAny<TextWriter>(), It.IsAny<object>())) .Throws(new SerializationException()); // Act var settings = testBundle.SettingsManager.Load(); // Assert Assert.IsNull(settings); }