public async Task TestOrmLiteViaGraphQLBusinessRules() { //Configure Expressions to GraphQL var schema = SchemaBuilder.FromObject <OrdersDbContext>(); var expressionFromGraphQLProvider = new ExpressionFromGraphQLProvider(schema); //Get an expression from graphql var expression = expressionFromGraphQLProvider.GetExpression($@"orderRecord.where(id = ""{_id}"")"); //Create the SQLite DB await CreateOrdersDb(); //Create the data layer var ormLiteLayer = new OrmLiteLayer("Orders.db"); //Create a business layer and rules var businessLayer = GetBusinessRulesContainer(ormLiteLayer); //Add a rule businessLayer.Item1.OnFetched <OrderRecord>(async(a) => { var results = await a.ToListAsync(); results.First().CustomValue = CustomValue; }); //Load the records var asyncEnumerable = await businessLayer.Item2.WhereAsync(expression); var returnValue = await asyncEnumerable.ToListAsync(); //Check that the business rule was called var resultOrder = (OrderRecord)returnValue.First(); Assert.AreEqual(CustomValue, resultOrder.CustomValue); }
public async Task TestOrmLiteViaGraphQL() { var schema = SchemaBuilder.FromObject <OrdersDbContext>(); var expressionFromGraphQLProvider = new ExpressionFromGraphQLProvider(schema); var expression = expressionFromGraphQLProvider.GetExpression($@"orderRecord.where(id = ""{_id}"")"); await CreateOrdersDb(); var repoDbDataLayer = new OrmLiteLayer("Orders.db"); var asyncEnumerable = await repoDbDataLayer.WhereAsync((Expression <Func <OrderRecord, bool> >) expression); var returnValue = await asyncEnumerable.ToListAsync(); Assert.AreEqual(1, returnValue.Count); }