public void ShouldSerializeAndDeserializeSettings() { GraphSession.Initialize(() => new GraphSession()); // Arrange GraphSession.Instance.DataStore = new MockDataStore(); GraphSettings settings = new GraphSettings(ProtectedFileProvider.CreateFileProvider(Constants.SettingFilePath, FileProtection.SharedRead)); GraphEnvironment userDefinedEnv = new GraphEnvironment { Name = "TestCloud", Type = GraphEnvironmentConstants.EnvironmentType.UserDefined, AzureADEndpoint = "https://tester.com", GraphEndpoint = "https://tester.com" }; settings.EnvironmentTable[userDefinedEnv.Name] = userDefinedEnv; // Act string serializedSettings = settings.ToString(); settings.TryDeserializeObject(serializedSettings, out GraphSettings deserializedSettings, new GraphSettingsConverter()); deserializedSettings.TryGetEnvironment(userDefinedEnv.Name, out IGraphEnvironment deserializedEnv); // Assert Assert.NotNull(deserializedSettings); Assert.NotNull(deserializedEnv); Assert.Equal(serializedSettings, deserializedSettings.ToString()); Assert.Equal(userDefinedEnv.GraphEndpoint, deserializedEnv.GraphEndpoint); GraphSession.Reset(); }