public void ValueTypeSubEntity() { var dbSet = new MongoDbBucketSet <EntityGroup, int>(new BucketSetOptions { BucketSize = 2 }); dbSet.SetConnection(TestConfiguration.GetConnection()); dbSet.AddRange(new EntityGroup { Name = "Group1" }, new[] { 2, 4, 6, 8, 10 }); dbSet.SaveChanges(); Assert.AreEqual(3, dbSet.Count()); var results = dbSet.WithGroup(new EntityGroup { Name = "Group1" }).ToArray(); Assert.AreEqual(5, results.Length); Assert.AreEqual(2, results[0]); Assert.AreEqual(4, results[1]); Assert.AreEqual(6, results[2]); Assert.AreEqual(8, results[3]); Assert.AreEqual(10, results[4]); }
public void DistinctGroups() { var dbSet = new MongoDbBucketSet <EntityGroup, SubEntityClass>(new BucketSetOptions { BucketSize = 2, EntityTimeProperty = "Date" }); dbSet.SetConnection(TestConfiguration.GetConnection()); dbSet.AddRange(new EntityGroup { Name = "Group1" }, new[] { new SubEntityClass { Label = "Entry1", Date = new DateTime(2020, 1, 1) }, new SubEntityClass { Label = "Entry2", Date = new DateTime(2020, 1, 2) }, new SubEntityClass { Label = "Entry3", Date = new DateTime(2020, 1, 3) } }); dbSet.AddRange(new EntityGroup { Name = "Group2" }, new[] { new SubEntityClass { Label = "Entry1", Date = new DateTime(2020, 1, 1) }, new SubEntityClass { Label = "Entry2", Date = new DateTime(2020, 1, 2) }, new SubEntityClass { Label = "Entry3", Date = new DateTime(2020, 1, 3) } }); dbSet.SaveChanges(); Assert.AreEqual(4, dbSet.Count()); var results = dbSet.Groups().OrderBy(g => g.Name).ToArray(); Assert.AreEqual(2, results.Length); Assert.AreEqual("Group1", results[0].Name); Assert.AreEqual("Group2", results[1].Name); }
public void ContinuousSubEntityAccessAcrossBuckets() { var connection = TestConfiguration.GetConnection(); var context = new MongoDbContext(connection); var dbSet = new MongoDbBucketSet <EntityGroup, SubEntityClass>(context, new BucketSetOptions { BucketSize = 2, EntityTimeProperty = "Date" }); dbSet.AddRange(new EntityGroup { Name = "Group1" }, new[] { new SubEntityClass { Label = "Entry1", Date = new DateTime(2020, 1, 1) }, new SubEntityClass { Label = "Entry2", Date = new DateTime(2020, 1, 2) }, new SubEntityClass { Label = "Entry3", Date = new DateTime(2020, 1, 3) }, new SubEntityClass { Label = "Entry4", Date = new DateTime(2020, 1, 4) }, new SubEntityClass { Label = "Entry5", Date = new DateTime(2020, 1, 5) } }); context.SaveChanges(); Assert.AreEqual(3, dbSet.Count()); var results = dbSet.WithGroup(new EntityGroup { Name = "Group1" }).ToArray(); Assert.AreEqual(5, results.Length); Assert.AreEqual("Entry1", results[0].Label); Assert.AreEqual("Entry2", results[1].Label); Assert.AreEqual("Entry3", results[2].Label); Assert.AreEqual("Entry4", results[3].Label); Assert.AreEqual("Entry5", results[4].Label); }
public void ContinuousSubEntityAccessAcrossBuckets() { var dbSet = new MongoDbBucketSet <EntityGroup, SubEntityClass>(new BucketSetOptions { BucketSize = 2 }); dbSet.SetConnection(TestConfiguration.GetConnection()); dbSet.AddRange(new EntityGroup { Name = "Group1" }, new[] { new SubEntityClass { Label = "Entry1" }, new SubEntityClass { Label = "Entry2" }, new SubEntityClass { Label = "Entry3" }, new SubEntityClass { Label = "Entry4" }, new SubEntityClass { Label = "Entry5" } }); dbSet.SaveChanges(); Assert.AreEqual(3, dbSet.Count()); var results = dbSet.WithGroup(new EntityGroup { Name = "Group1" }).ToArray(); Assert.AreEqual(5, results.Length); Assert.AreEqual("Entry1", results[0].Label); Assert.AreEqual("Entry2", results[1].Label); Assert.AreEqual("Entry3", results[2].Label); Assert.AreEqual("Entry4", results[3].Label); Assert.AreEqual("Entry5", results[4].Label); }