public void Save() { // save using SessionConfig instance SessionConfig scSave = new SessionConfig("SessionConfig", "mysqlx://myuser@localhost/SessionConfig"); scSave.SetAppData("alias", "SessionConfigAlias"); SessionConfigManager.Save(scSave); SessionConfig sc = SessionConfigManager.Get("SessionConfig"); Assert.Equal("SessionConfig", sc.Name); Assert.Equal("mysqlx://myuser@localhost/SessionConfig", sc.Uri); Assert.Equal("SessionConfigAlias", sc.GetAppData("alias")); // save using Json string and Uri SessionConfigManager.Save("JsonString", "{ \"uri\": \"mysqlx://myuser@localhost/JsonString\", \"appdata\": { \"alias\": \"JsonStringAlias\" } }"); sc = SessionConfigManager.Get("JsonString"); Assert.Equal("JsonString", sc.Name); Assert.Equal("mysqlx://myuser@localhost/JsonString", sc.Uri); Assert.Equal("JsonStringAlias", sc.GetAppData("alias")); // save using DbDoc SessionConfigManager.Save("DbDoc", new DbDoc("{ \"uri\": \"mysqlx://myuser@localhost/DbDoc\", \"appdata\": { \"alias\": \"DbDocAlias\" } }")); sc = SessionConfigManager.Get("DbDoc"); Assert.Equal("DbDoc", sc.Name); Assert.Equal("mysqlx://myuser@localhost/DbDoc", sc.Uri); Assert.Equal("DbDocAlias", sc.GetAppData("alias")); // save overwrites key if key already exists SessionConfigManager.Save("DbDoc", new DbDoc("{ \"uri\": \"mysqlx://myuser@localhost/DbDocUpdated\", \"appdata\": { \"alias\": \"DbDocAliasUpdated\", \"other\": 5 } }")); sc = SessionConfigManager.Get("DbDoc"); Assert.Equal("DbDoc", sc.Name); Assert.Equal("mysqlx://myuser@localhost/DbDocUpdated", sc.Uri); Assert.Equal("DbDocAliasUpdated", sc.GetAppData("alias")); Assert.Equal("DbDocAliasUpdated", sc.GetAppData("alias")); Assert.Equal("5", sc.GetAppData("other")); // save using Dictionary and Uri Dictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("uri", "mysqlx://myuser@localhost/Dictionary"); dic.Add("alias", "DictionaryAlias"); SessionConfigManager.Save("Dictionary", dic); sc = SessionConfigManager.Get("Dictionary"); Assert.Equal("Dictionary", sc.Name); Assert.Equal("mysqlx://myuser@localhost/Dictionary", sc.Uri); Assert.Equal("DictionaryAlias", sc.GetAppData("alias")); // save using Dictionary and connection attributes Dictionary <string, string> dic2 = new Dictionary <string, string>(); dic2.Add("user", "myuser"); dic2.Add("host", "localhost"); dic2.Add("port", "33060"); dic2.Add("schema", "Dictionary2"); dic2.Add("alias", "Dictionary2Alias"); SessionConfigManager.Save("Dictionary2", dic2); sc = SessionConfigManager.Get("Dictionary2"); Assert.Equal("Dictionary2", sc.Name); Assert.Equal("mysqlx://myuser@localhost:33060/Dictionary2", sc.Uri); Assert.Equal("Dictionary2Alias", sc.GetAppData("alias")); // save using Uri and appdata as json SessionConfigManager.Save("UriJson", "mysqlx://myuser@localhost/UriJson", "{ \"alias\": \"UriJsonAlias\" }"); sc = SessionConfigManager.Get("UriJson"); Assert.Equal("UriJson", sc.Name); Assert.Equal("mysqlx://myuser@localhost/UriJson", sc.Uri); Assert.Equal("UriJsonAlias", sc.GetAppData("alias")); // save using Uri and appdata as dictionary Dictionary <string, string> dicAppData = new Dictionary <string, string>(); dicAppData.Add("alias", "UriDicAlias"); SessionConfigManager.Save("UriDic", "mysqlx://myuser@localhost/UriDic", dicAppData); sc = SessionConfigManager.Get("UriDic"); Assert.Equal("UriDic", sc.Name); Assert.Equal("mysqlx://myuser@localhost/UriDic", sc.Uri); Assert.Equal("UriDicAlias", sc.GetAppData("alias")); // save using Json string and connection attributes SessionConfigManager.Save("JsonStringAttributes", "{ \"host\": \"localhost\", \"user\": \"\", \"port\": 33060, \"schema\": \"JsonStringAttributes\", \"appdata\": { \"alias\": \"JsonStringAttributesAlias\", \"other\": 5 }, \"a\":1 }"); sc = SessionConfigManager.Get("JsonStringAttributes"); Assert.Equal("JsonStringAttributes", sc.Name); Assert.Equal("mysqlx://localhost:33060/JsonStringAttributes", sc.Uri); Assert.Equal("JsonStringAttributesAlias", sc.GetAppData("alias")); Assert.Equal("5", sc.GetAppData("other")); // save using json anonymous SessionConfigManager.Save("JsonAnonymous", new { host = "localhost", user = "", port = 33060, schema = "JsonAnonymous", appdata = new { alias = "JsonAnonymousAlias", other = 5 } }); sc = SessionConfigManager.Get("JsonAnonymous"); Assert.Equal("JsonAnonymous", sc.Name); Assert.Equal("mysqlx://localhost:33060/JsonAnonymous", sc.Uri); Assert.Equal("JsonAnonymousAlias", sc.GetAppData("alias")); Assert.Equal("5", sc.GetAppData("other")); }