#region Copyright notice and license // Protocol Buffers - Google's data interchange format // Copyright 2008 Google Inc. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd #endregion using Google.Protobuf.Reflection; using NUnit.Framework; // For WrapInQuotes namespace Google.Protobuf { public class JsonFormatterSettingsTest { [Test] public void WithIndentation() { var settings = JsonFormatter.Settings.Default.WithIndentation("\t"); Assert.AreEqual("\t", settings.Indentation); } [Test] public void WithTypeRegistry() { var typeRegistry = TypeRegistry.Empty; var settings = JsonFormatter.Settings.Default.WithTypeRegistry(typeRegistry); Assert.AreEqual(typeRegistry, settings.TypeRegistry); } [Test] public void WithFormatDefaultValues() { var settingsWith = JsonFormatter.Settings.Default.WithFormatDefaultValues(true); Assert.AreEqual(true, settingsWith.FormatDefaultValues); var settingsWithout = JsonFormatter.Settings.Default.WithFormatDefaultValues(false); Assert.AreEqual(false, settingsWithout.FormatDefaultValues); } [Test] public void WithFormatEnumsAsIntegers() { var settingsWith = JsonFormatter.Settings.Default.WithFormatEnumsAsIntegers(true); Assert.AreEqual(true, settingsWith.FormatEnumsAsIntegers); var settingsWithout = JsonFormatter.Settings.Default.WithFormatEnumsAsIntegers(false); Assert.AreEqual(false, settingsWithout.FormatEnumsAsIntegers); } [Test] public void WithMethodsPreserveExistingSettings() { var typeRegistry = TypeRegistry.Empty; var baseSettings = JsonFormatter.Settings.Default .WithIndentation("\t") .WithFormatDefaultValues(true) .WithFormatEnumsAsIntegers(true) .WithTypeRegistry(typeRegistry) .WithPreserveProtoFieldNames(true); var settings1 = baseSettings.WithIndentation("\t"); var settings2 = baseSettings.WithFormatDefaultValues(true); var settings3 = baseSettings.WithFormatEnumsAsIntegers(true); var settings4 = baseSettings.WithTypeRegistry(typeRegistry); var settings5 = baseSettings.WithPreserveProtoFieldNames(true); AssertAreEqual(baseSettings, settings1); AssertAreEqual(baseSettings, settings2); AssertAreEqual(baseSettings, settings3); AssertAreEqual(baseSettings, settings4); AssertAreEqual(baseSettings, settings5); } private static void AssertAreEqual(JsonFormatter.Settings settings, JsonFormatter.Settings other) { Assert.AreEqual(settings.Indentation, other.Indentation); Assert.AreEqual(settings.FormatDefaultValues, other.FormatDefaultValues); Assert.AreEqual(settings.FormatEnumsAsIntegers, other.FormatEnumsAsIntegers); Assert.AreEqual(settings.TypeRegistry, other.TypeRegistry); } } }