public void ConvertBack_NullString_ReturnsNullCultureInfo()
        {
            //Arrange
            var    converter = new CultureInfoStringConverter();
            string language  = null;

            //Act
            var converted = converter.ConvertBack(
                language, typeof(CultureInfo), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as CultureInfo;

            //Assert
            Assert.AreEqual(null, convertedAsTargetType);
        }
        public void ConvertBack_InvalidString_ReturnsNull()
        {
            //Arrange
            var converter = new CultureInfoStringConverter();
            var language  = "Some name (hel-lo)";

            //Act
            var converted = converter.ConvertBack(
                language, typeof(CultureInfo), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as CultureInfo;

            //Assert
            Assert.AreEqual(null, convertedAsTargetType);
        }
        public void Convert_InappropriateType_ReturnsEmptyString()
        {
            //Arrange
            var converter = new CultureInfoStringConverter();
            var language  = "I am a CultureInfo object";

            //Act
            var converted = converter.Convert(
                language, typeof(string), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as string;

            //Assert
            Assert.IsInstanceOfType(converted, typeof(string));
            Assert.AreEqual(string.Empty, convertedAsTargetType);
        }
        public void ConvertBack_ValidString_ReturnsCorrespondingCultureInfo()
        {
            //Arrange
            var converter        = new CultureInfoStringConverter();
            var languageOriginal = new CultureInfo("en-US");
            var language         = languageOriginal.DisplayName + " (" + languageOriginal.Name + ")";

            //Act
            var converted = converter.ConvertBack(
                language, typeof(CultureInfo), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as CultureInfo;

            //Assert
            Assert.IsInstanceOfType(converted, typeof(CultureInfo));
            Assert.AreEqual(languageOriginal, convertedAsTargetType);
        }
        public void Convert_InvariantCultureInfo_ReturnsCorrespondingString()
        {
            //Arrange
            var converter         = new CultureInfoStringConverter();
            var language          = CultureInfo.InvariantCulture;
            var expectedConverted = language.DisplayName + " (" + language.Name + ")";

            //Act
            var converted = converter.Convert(
                language, typeof(string), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as string;

            //Assert
            Assert.IsInstanceOfType(converted, typeof(string));
            Assert.AreEqual(expectedConverted, convertedAsTargetType);
        }
        public void ConvertBack_InappropriateType_ReturnsNullCultureInfo()
        {
            //Arrange
            var converter = new CultureInfoStringConverter();
            var language  = new List <string> {
                "I am a string object"
            };

            //Act
            var converted = converter.ConvertBack(
                language, typeof(CultureInfo), null, CultureInfo.InvariantCulture);
            var convertedAsTargetType = converted as CultureInfo;

            //Assert
            Assert.AreEqual(null, convertedAsTargetType);
        }