async Task SetUpAsync() { Func <string, string, string> Env = (name, @default) => Environment.GetEnvironmentVariable(name) ?? @default; var domain = Env("FAUNA_DOMAIN", "localhost"); var scheme = Env("FAUNA_SCHEME", "http"); var port = Env("FAUNA_PORT", "8443"); var secret = Env("FAUNA_ROOT_KEY", "secret"); var endpoint = $"{scheme}://{domain}:{port}"; rootClient = new FaunaClient(secret: secret, endpoint: endpoint); const string dbName = "faunadb-csharp-test"; DbRef = Database(dbName); try { await rootClient.Query(Delete(DbRef)); } catch (BadRequest) {} await rootClient.Query(CreateDatabase(Obj("name", dbName))); clientKey = await rootClient.Query(CreateKey(Obj("database", DbRef, "role", "server"))); adminKey = await rootClient.Query(CreateKey(Obj("database", DbRef, "role", "admin"))); client = rootClient.NewSessionClient(clientKey.Get(SECRET_FIELD)); adminClient = rootClient.NewSessionClient(adminKey.Get(SECRET_FIELD)); }
static async Task <FaunaClient> CreateNewDatabase(FaunaClient client, string name) { await client.Query(CreateDatabase(Obj("name", name))); var key = await client.Query(CreateKey(Obj("database", Database(name), "role", "admin"))); return(client.NewSessionClient(secret: key.Get(SECRET_FIELD))); }
[Test] public async Task TestCreateKey() { await adminClient.Query(CreateDatabase(Obj("name", "database_for_key_test"))); var key = await adminClient.Query(CreateKey(Obj("database", Database("database_for_key_test"), "role", "server"))); var newClient = adminClient.NewSessionClient(secret: key.Get(SECRET_FIELD)); await newClient.Query(CreateClass(Obj("name", "class_for_key_test"))); Assert.AreEqual(BooleanV.True, await newClient.Query(Exists(Class("class_for_key_test")))); }
protected FaunaClient GetClient(string secret) => rootClient.NewSessionClient(secret);