use of com.example.graphql.client.betterbotz.atomic.InsertOrdersAndBulkInsertProductsWithAtomicMutation in project stargate by stargate.
the class BulkInsertTest method insertOrderAndBulkInsertNProductsWithAtomic.
@Test
@DisplayName("Should execute normal insert and multiple bulk mutations with atomic directive")
public void insertOrderAndBulkInsertNProductsWithAtomic() {
String productId1 = UUID.randomUUID().toString();
String productId2 = UUID.randomUUID().toString();
String productName = "Shiny Legs";
String description = "Normal legs but shiny.";
ProductsInput product1 = ProductsInput.builder().id(productId1).name(productName).price("3199.99").created(now()).description(description).build();
ProductsInput product2 = ProductsInput.builder().id(productId2).name("Non-Legs").price("1000.99").created(now()).description("Non-legs.").build();
String customerName = "c1";
OrdersInput order = OrdersInput.builder().prodName(productName).customerName(customerName).price("3199.99").description(description).build();
ApolloClient client = getApolloClient("/graphql/" + keyspace);
InsertOrdersAndBulkInsertProductsWithAtomicMutation mutation = InsertOrdersAndBulkInsertProductsWithAtomicMutation.builder().values(Arrays.asList(product1, product2)).orderValue(order).build();
insertOrdersAndBulkInsertProductsWthAtomic(client, mutation);
GetProductsWithFilterQuery.Value product1Result = getProduct(client, productId1);
assertThat(product1Result.getId()).hasValue(productId1);
assertThat(product1Result.getName()).hasValue(product1.name());
assertThat(product1Result.getPrice()).hasValue(product1.price());
assertThat(product1Result.getCreated()).hasValue(product1.created());
assertThat(product1Result.getDescription()).hasValue(product1.description());
GetProductsWithFilterQuery.Value product2Result = getProduct(client, productId2);
assertThat(product2Result.getId()).hasValue(productId2);
assertThat(product2Result.getName()).hasValue(product2.name());
assertThat(product2Result.getPrice()).hasValue(product2.price());
assertThat(product2Result.getCreated()).hasValue(product2.created());
assertThat(product2Result.getDescription()).hasValue(product2.description());
assertThat(session.execute(SimpleStatement.newInstance("SELECT * FROM \"Orders\" WHERE \"prodName\" = ?", productName)).one()).isNotNull().extracting(r -> r.getString("\"customerName\""), r -> r.getString("description")).containsExactly(customerName, description);
}
Aggregations