public void AppliesTenantConstraint()
        {
            var indexModel = IndexModelBuilder <TenantUniqueConstraintModel> .BuildModel();

            var indexBsonDocument = indexModel.First().Keys.Render(null, null).ToString();

            Assert.AreEqual("{ \"TenantId\" : 1, \"UniqueIndex\" : 1 }", indexBsonDocument);
        }
        public void AppliesUniqueConstraint()
        {
            var indexModel = IndexModelBuilder <UniqueConstraintModel> .BuildModel();

            Assert.AreEqual(2, indexModel.Count());
            Assert.IsTrue(indexModel.Any(m => m.Options.Name == "UniqueIndex" && m.Options.Unique == true));
            Assert.IsTrue(indexModel.Any(m => m.Options.Name == "NonUniqueIndex" && m.Options.Unique == false));
        }
        public void IndexNaming()
        {
            var indexModel = IndexModelBuilder <IndexNamingModel> .BuildModel();

            Assert.AreEqual(2, indexModel.Count());
            Assert.IsTrue(indexModel.Any(m => m.Options.Name == null));
            Assert.IsTrue(indexModel.Any(m => m.Options.Name == "MyCustomIndexName"));
        }
        public void Geo2dSphereIndex()
        {
            var indexModel = IndexModelBuilder <Geo2dSphereIndexModel> .BuildModel();

            Assert.AreEqual(1, indexModel.Count());

            var results = indexModel.Select(i => i.Keys.Render(null, null)).FirstOrDefault();

            Assert.IsTrue(results.Any(e => e.Name == "SomeCoordinates" && e.Value == "2dsphere"));
        }
        public void MultipleIndexesOnSingleProperty()
        {
            var indexModel = IndexModelBuilder <MultipleIndexesOnSinglePropertyModel> .BuildModel();

            Assert.AreEqual(2, indexModel.Count());

            var results = indexModel.Select(i => i.Keys.Render(null, null));

            Assert.IsTrue(results.Any(e => e.Contains("MyCustomField") && e.ElementCount == 1));
            Assert.IsTrue(results.Any(e => e.Contains("MyCustomField") && e.Contains("OtherField") && e.ElementCount == 2));
        }
        public void TextIndex()
        {
            var indexModel = IndexModelBuilder <TextIndexModel> .BuildModel();

            Assert.AreEqual(1, indexModel.Count());

            var results = indexModel.Select(i => i.Keys.Render(null, null)).FirstOrDefault();

            Assert.IsTrue(results.Any(e => e.Name == "SomeTextField" && e.Value == "text"));
            Assert.IsTrue(results.Any(e => e.Name == "AnotherTextField" && e.Value == "text"));
        }
        public void AppliesIndexSortOrder()
        {
            var indexModel = IndexModelBuilder <IndexSortOrderModel> .BuildModel();

            Assert.AreEqual(2, indexModel.Count());

            var indexBsonDocument = indexModel.Select(m => m.Keys.Render(null, null)).ToArray();

            Assert.AreEqual(1, indexBsonDocument[0]["AscendingIndex"]);
            Assert.AreEqual(-1, indexBsonDocument[1]["DescendingIndex"]);
        }
        public void MultikeyIndex()
        {
            var indexModel = IndexModelBuilder <MultikeyIndexModel> .BuildModel();

            Assert.AreEqual(3, indexModel.Count());

            var results = indexModel.Select(i => i.Keys.Render(null, null).ElementAt(0));

            Assert.IsTrue(results.Any(e => e.Name == "ChildEnumerable.ChildId"));
            Assert.IsTrue(results.Any(e => e.Name == "ChildArray.ChildId"));
            Assert.IsTrue(results.Any(e => e.Name == "ChildList.ChildId"));
        }
        public void NestedCompoundIndex()
        {
            var indexModel = IndexModelBuilder <NestedIndexBaseModel> .BuildModel();

            Assert.AreEqual(1, indexModel.Count());

            var compoundIndex = indexModel.FirstOrDefault();

            Assert.AreEqual("MyCompoundIndex", compoundIndex.Options.Name);

            var indexBsonDocument = compoundIndex.Keys.Render(null, null);

            Assert.AreEqual("ChildModel.FirstPriority", indexBsonDocument.ElementAt(0).Name);
            Assert.AreEqual("SecondPriority", indexBsonDocument.ElementAt(1).Name);
        }
コード例 #10
0
 public void NestedModel()
 {
     IndexModelBuilder <NestedIndexParentModel> .BuildModel().ToArray();
 }
コード例 #11
0
 public void FlatModel()
 {
     IndexModelBuilder <FlatIndexModel> .BuildModel().ToArray();
 }