Nothing
context("Batch request")
tenant <- Sys.getenv("AZ_TEST_TENANT_ID")
user <- Sys.getenv("AZ_TEST_USERPRINCIPALNAME")
if(tenant == "" || user == "")
skip("Batch tests skipped: login credentials not set")
if(!interactive())
skip("Batch tests skipped: must be in interactive session")
scopes <- c("https://graph.microsoft.com/.default", "openid", "offline_access")
token <- AzureAuth::get_azure_token(scopes, tenant, .az_cli_app_id, version=2)
gr <- ms_graph$new(token=token)
test_that("Simple batch request works",
{
req1 <- graph_request$new("me")
expect_is(req1, "graph_request")
expect_identical(req1$op, "me")
expect_identical(req1$method, "GET")
bat1 <- req1$batchify()
expect_identical(bat1, list(
id=NULL,
method="GET",
url="/me"))
req2 <- graph_request$new("me/ownedObjects")
res <- gr$call_batch_endpoint(list(req1, req2))
expect_is(res, "list")
expect_identical(res[[1]]$id, "1")
expect_identical(res[[2]]$id, "2")
expect_identical(res[[1]]$body$`@odata.context`, "https://graph.microsoft.com/v1.0/$metadata#users/$entity")
expect_identical(res[[2]]$body$`@odata.context`, "https://graph.microsoft.com/v1.0/$metadata#directoryObjects")
})
test_that("Batch request with dependency works",
{
newname <- paste0(sample(letters, 20, TRUE), collapse="")
req_get <- graph_request$new(file.path("users", user))
req_update <- graph_request$new(file.path("users", user),
body=list(givenName=newname), http_verb="PATCH")
res <- gr$call_batch_endpoint(list(req_get, req_update, req_get), depends_on=c("2"=1, "3"=2))
expect_is(res, "list")
expect_identical(res[[1]]$id, "1")
expect_identical(res[[2]]$id, "2")
expect_identical(res[[3]]$id, "3")
expect_false(identical(res[[1]]$body$givenName, newname))
expect_identical(res[[3]]$body$givenName, newname)
# auto-generated depends_on
newname2 <- paste0(sample(letters, 20, TRUE), collapse="")
req_update2 <- graph_request$new(file.path("users", user),
body=list(givenName=newname2), http_verb="PATCH")
res2 <- gr$call_batch_endpoint(list(req_get, req_update2, req_get), depends_on=TRUE)
expect_false(identical(res2[[1]]$body$givenName, newname2))
expect_identical(res2[[3]]$body$givenName, newname2)
})
test_that("Batch request errors handled gracefully",
{
req1 <- graph_request$new("me")
req2 <- graph_request$new("me/drive", body=list(foo="bar"), http_verb="POST")
expect_error(gr$call_batch_endpoint(list(req1, req2)), "Graph batch job encountered errors")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.