From 58dda0b23e09a9b8a03ac9528fc6eb5908c7bf9e Mon Sep 17 00:00:00 2001 From: Jin Qiao Date: Mon, 27 Apr 2020 14:12:56 +0800 Subject: [PATCH] Remove ProtocolSettings Initialize --- src/neo/ProtocolSettings.cs | 28 +------- tests/neo.UnitTests/UT_ProtocolSettings.cs | 78 ---------------------- 2 files changed, 1 insertion(+), 105 deletions(-) diff --git a/src/neo/ProtocolSettings.cs b/src/neo/ProtocolSettings.cs index ca6deaf96e..08cf86392b 100644 --- a/src/neo/ProtocolSettings.cs +++ b/src/neo/ProtocolSettings.cs @@ -1,7 +1,6 @@ using Microsoft.Extensions.Configuration; using System; using System.Linq; -using System.Threading; namespace Neo { @@ -15,32 +14,7 @@ public class ProtocolSettings public uint MillisecondsPerBlock { get; } public int MemoryPoolMaxTransactions { get; } - static ProtocolSettings _default; - - static bool UpdateDefault(IConfiguration configuration) - { - var settings = new ProtocolSettings(configuration.GetSection("ProtocolConfiguration")); - return null == Interlocked.CompareExchange(ref _default, settings, null); - } - - public static bool Initialize(IConfiguration configuration) - { - return UpdateDefault(configuration); - } - - public static ProtocolSettings Default - { - get - { - if (_default == null) - { - var configuration = Utility.LoadConfig("protocol"); - UpdateDefault(configuration); - } - - return _default; - } - } + public static readonly ProtocolSettings Default = new ProtocolSettings(Utility.LoadConfig("protocol").GetSection("ProtocolConfiguration")); private ProtocolSettings(IConfigurationSection section) { diff --git a/tests/neo.UnitTests/UT_ProtocolSettings.cs b/tests/neo.UnitTests/UT_ProtocolSettings.cs index e1a9e91cbb..214e9bbaca 100644 --- a/tests/neo.UnitTests/UT_ProtocolSettings.cs +++ b/tests/neo.UnitTests/UT_ProtocolSettings.cs @@ -1,36 +1,12 @@ using FluentAssertions; -using Microsoft.Extensions.Configuration; using Microsoft.VisualStudio.TestTools.UnitTesting; using Neo.Wallets; -using System.Collections.Generic; -using System.Reflection; namespace Neo.UnitTests { [TestClass] public class UT_ProtocolSettings { - // since ProtocolSettings.Default is designed to be writable only once, use reflection to - // reset the underlying _default field to null before and after running tests in this class. - static void ResetProtocolSettings() - { - var defaultField = typeof(ProtocolSettings) - .GetField("_default", BindingFlags.Static | BindingFlags.NonPublic); - defaultField.SetValue(null, null); - } - - [TestInitialize] - public void Initialize() - { - ResetProtocolSettings(); - } - - [TestCleanup] - public void Cleanup() - { - ResetProtocolSettings(); - } - [TestMethod] public void CheckFirstLetterOfAddresses() { @@ -47,60 +23,6 @@ public void Default_Magic_should_be_mainnet_Magic_value() ProtocolSettings.Default.Magic.Should().Be(mainNetMagic); } - [TestMethod] - public void Can_initialize_ProtocolSettings() - { - var expectedMagic = 12345u; - - var dict = new Dictionary() - { - { "ProtocolConfiguration:Magic", $"{expectedMagic}" } - }; - - var config = new ConfigurationBuilder().AddInMemoryCollection(dict).Build(); - ProtocolSettings.Initialize(config).Should().BeTrue(); - ProtocolSettings.Default.Magic.Should().Be(expectedMagic); - } - - [TestMethod] - public void Cant_initialize_ProtocolSettings_after_default_settings_used() - { - var mainNetMagic = 0x4F454Eu; - ProtocolSettings.Default.Magic.Should().Be(mainNetMagic); - - var updatedMagic = 54321u; - var dict = new Dictionary() - { - { "ProtocolConfiguration:Magic", $"{updatedMagic}" } - }; - - var config = new ConfigurationBuilder().AddInMemoryCollection(dict).Build(); - ProtocolSettings.Initialize(config).Should().BeFalse(); - ProtocolSettings.Default.Magic.Should().Be(mainNetMagic); - } - - [TestMethod] - public void Cant_initialize_ProtocolSettings_twice() - { - var expectedMagic = 12345u; - var dict = new Dictionary() - { - { "ProtocolConfiguration:Magic", $"{expectedMagic}" } - }; - - var config = new ConfigurationBuilder().AddInMemoryCollection(dict).Build(); - ProtocolSettings.Initialize(config).Should().BeTrue(); - - var updatedMagic = 54321u; - dict = new Dictionary() - { - { "ProtocolConfiguration:Magic", $"{updatedMagic}" } - }; - config = new ConfigurationBuilder().AddInMemoryCollection(dict).Build(); - ProtocolSettings.Initialize(config).Should().BeFalse(); - ProtocolSettings.Default.Magic.Should().Be(expectedMagic); - } - [TestMethod] public void TestGetMemoryPoolMaxTransactions() {