public void Should_list_functions()
{
Database.CreateTestDatabase(Database.TestDatabaseGeneral);
var db = new ADatabase(Database.Alias);
const string name1 = "myfunctions::temperature::celsiustofahrenheit1";
const string code1 = "function (celsius) { return celsius * 1.8 + 40; }";
var registerResult1 = db.Function.Register(name1, code1);
Assert.AreEqual(true, registerResult1.Success);
const string name2 = "myfunctions::temperature::celsiustofahrenheit2";
const string code2 = "function (celsius) { return celsius * 1.8 + 32; }";
var registerResult2 = db.Function.Register(name2, code2);
Assert.AreEqual(true, registerResult2.Success);
var listResult = db.Function.List();
Assert.AreEqual(200, listResult.StatusCode);
Assert.IsTrue(listResult.Success);
Assert.IsTrue(listResult.HasValue);
Assert.AreEqual(2, listResult.Value.Count);
// retrieved order of the functions seems to be reversed
Assert.AreEqual(name2, listResult.Value[0].String("name"));
Assert.AreEqual(code2, listResult.Value[0].String("code"));
Assert.AreEqual(name1, listResult.Value[1].String("name"));
Assert.AreEqual(code1, listResult.Value[1].String("code"));
}