public void Does_serialize_attribute_type() { InitTypes(); var q = Parse <Collection>(x => Dynamo.AttributeType(x.Title, DynamoType.String)); Assert.That(q.FilterExpression, Is.EqualTo("attribute_type(Title, :p0)")); Assert.That(q.Params.Count, Is.EqualTo(1)); Assert.That(q.Params[":p0"], Is.EqualTo("S")); }
public void Can_scan_advanced_expressions() { var customer = InsertCustomerAndOrders(); var orders = db.FromScan <Order>(x => x.Product.StartsWith("Item A")) .Exec(); orders = db.FromScan <Order>(x => Dynamo.BeginsWith(x.Product, "Item A")).Exec(); orders = db.FromScan <Order>().Filter("begins_with(Product, :s)", new { s = "Item A" }) .Exec(); orders = db.FromScan <Order>(x => x.Product.Contains("em A")).Exec(); orders = db.FromScan <Order>(x => Dynamo.Contains(x.Product, "em A")).Exec(); orders = db.FromScan <Order>().Filter("contains(Product, :s)", new { s = "em A" }).Exec(); var qtys = new[] { 5, 10 }; orders = db.FromScan <Order>(x => qtys.Contains(x.Qty)).Exec(); orders = db.FromScan <Order>(x => Dynamo.In(x.Qty, qtys)).Exec(); orders = db.FromScan <Order>().Filter("Qty in(:q1,:q2)", new { q1 = 5, q2 = 10 }).Exec(); orders = db.FromScan <Order>(x => x.Product.Length == 6).Exec(); orders = db.FromScan <Order>(x => Dynamo.Size(x.Product) == 6).Exec(); orders = db.FromScan <Order>().Filter("size(Product) = :n", new { n = 6 }).Exec(); orders = db.FromScan <Order>(x => Dynamo.Between(x.Qty, 3, 5)).Exec(); orders = db.FromScan <Order>(x => x.Qty >= 3 && x.Qty <= 5).Exec(); orders = db.FromScan <Order>().Filter("Qty between :from and :to", new { from = 3, to = 5 }).Exec(); orders = db.FromScan <Order>(x => Dynamo.AttributeType(x.Product, DynamoType.String) && Dynamo.AttributeType(x.Qty, DynamoType.Number)) .Exec(); orders = db.FromScan <Order>().Filter( "attribute_type(Qty, :n) and attribute_type(Product, :s)", new { n = "N", s = "S" }) .Exec(); orders = db.FromScan <Order>(x => Dynamo.AttributeExists(x.Product)).Exec(); orders = db.FromScan <Order>().Filter("attribute_exists(Product)").Exec(); orders.PrintDump(); }
public void Can_Scan_with_attribute_type() { var db = CreatePocoDynamo(); var row = PutCollection(db); var results = db.Scan(db.FromScan <Collection>().Filter("attribute_type(Title, :s)", new { s = "S" })).ToList(); Assert.That(results[0], Is.EqualTo(row)); results = db.Scan(db.FromScan <Collection>(x => Dynamo.AttributeType(x.Title, DynamoType.String))).ToList(); Assert.That(results[0], Is.EqualTo(row)); results = db.Scan(db.FromScan <Collection>().Filter("attribute_type(Title, :s)", new { s = "N" })).ToList(); Assert.That(results.Count, Is.EqualTo(0)); }