예제 #1
0
        public void CanConvertTest(Type type, bool expectedResult)
        {
            // Arrange
            var converter = new ObfuscatorJsonConverter(new Data());

            // Act and Assert
            Assert.Equal(expectedResult, converter.CanConvert(type));
        }
예제 #2
0
        public void WriteHappyJson()
        {
            // Arrange
            var dataChild           = new Data("name", "1.1.1.1", "authors", 1, "abc", 2.5, null);
            var data                = new Data("name", "1.1.1.1", "authors", 1, "abc", 2.5, dataChild);
            var obfuscatorConverter = new ObfuscatorJsonConverter(data);
            var stringBuilder       = new StringBuilder();
            var jsonWriter          = new JsonTextWriter(new StringWriter(stringBuilder));

            // Act
            var settings = new JsonSerializerSettings
            {
                DateFormatHandling    = DateFormatHandling.IsoDateFormat,
                DateTimeZoneHandling  = DateTimeZoneHandling.Utc,
                DefaultValueHandling  = DefaultValueHandling.Include,
                Formatting            = Formatting.Indented,
                MaxDepth              = 10,
                MissingMemberHandling = MissingMemberHandling.Ignore,
                NullValueHandling     = NullValueHandling.Include,
                TypeNameHandling      = TypeNameHandling.None,
            };

            settings.Converters.Add(new StringEnumConverter());
            settings.Converters.Add(obfuscatorConverter);
            var resultString = JsonConvert.SerializeObject(data, settings);
            var result       = JObject.Parse(resultString);

            // Assert
            Assert.Equal <string>("ObfuscatedUserName", result["UserName"].ToString());
            Assert.Equal <string>("1.1.1.0", result["IP"].ToString());
            Assert.Equal <string>(string.Empty, result["Authors"].ToString());
            Assert.Equal <string>("-1", result["UserKey"].ToString());
            Assert.Equal <string>("abc", result["SupportedTypeRandom"].ToString());
            Assert.Equal <string>("2.5", Convert.ToString(result["NotSupportedTypeRandom"], CultureInfo.InvariantCulture));

            Assert.Equal <string>("ObfuscatedUserName", result["OtherData"]["UserName"].ToString());
            Assert.Equal <string>("1.1.1.0", result["OtherData"]["IP"].ToString());
            Assert.Equal <string>(string.Empty, result["OtherData"]["Authors"].ToString());
            Assert.Equal <string>("-1", result["OtherData"]["UserKey"].ToString());
            Assert.Equal <string>("abc", result["SupportedTypeRandom"].ToString());
            Assert.Equal <string>("2.5", Convert.ToString(result["OtherData"]["NotSupportedTypeRandom"], CultureInfo.InvariantCulture));
        }