Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }