public async Task ScriptsTriggerTest(bool directMode) { CosmosClient client = directMode ? DirectCosmosClient : GatewayCosmosClient; Database database = client.GetDatabase(DatabaseId); Container container = await database.CreateContainerAsync(Guid.NewGuid().ToString(), "/pk"); Scripts scripts = container.Scripts; List <string> createdIds = new List <string>() { "BasicQueryTrigger1", "BasicQueryTrigger2", "BasicQueryTrigger3" }; //Basic query List <TriggerProperties> queryResults = await this.ToListAsync( scripts.GetTriggerQueryStreamIterator, scripts.GetTriggerQueryIterator <TriggerProperties>, "select * from T where STARTSWITH(T.id, \"BasicQueryTrigger\")", CosmosBasicQueryTests.RequestOptions); if (queryResults.Count < 3) { foreach (string id in createdIds) { TriggerProperties properties = await scripts.CreateTriggerAsync(new TriggerProperties() { Id = id, Body = "function() {var x = 10;}" }); } queryResults = await this.ToListAsync( scripts.GetTriggerQueryStreamIterator, scripts.GetTriggerQueryIterator <TriggerProperties>, "select * from T where STARTSWITH(T.id, \"BasicQueryTrigger\")", CosmosBasicQueryTests.RequestOptions); } CollectionAssert.AreEquivalent(createdIds, queryResults.Select(x => x.Id).ToList()); //Read All List <TriggerProperties> results = await this.ToListAsync( scripts.GetTriggerQueryStreamIterator, scripts.GetTriggerQueryIterator <TriggerProperties>, null, CosmosBasicQueryTests.RequestOptions); CollectionAssert.IsSubsetOf(createdIds, results.Select(x => x.Id).ToList()); }
public async Task CreateTrigger(string triggerName, string triggerType = "Post") { string message = "Create Triggers"; Printer.PrintLine(message: message); var triggerBody = File.ReadAllText($"Triggers/{triggerName}.js"); TriggerType tt = string.Equals(triggerType, "Pre") ? TriggerType.Pre : TriggerType.Post; Scripts scripts = _container.Scripts; TriggerProperties triggerProperties = new TriggerProperties { Id = triggerName, Body = triggerBody, TriggerType = tt, TriggerOperation = TriggerOperation.Create }; TriggerResponse triggerResponse = await scripts.CreateTriggerAsync(triggerProperties); WriteLine($"Trigger Details, Id: {triggerResponse.Resource.Id}, SelfLink: {triggerResponse.Resource.SelfLink},\nTriggerOperation: {triggerResponse.Resource.TriggerOperation}, TriggerType: {triggerResponse.Resource.TriggerType}"); Printer.PrintLine(noOfTimes: (100 + message.Length)); }