Example #1
0
        public void ShouldAddDefaultIndexes()
        {
            //// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            //// Act
            var info = builder
                       .AddDefaultIndexes(p => p.Child, 1)
                       .Build();

            var json = JsonConvert.SerializeObject(info, Formatting.Indented);

            //// Assert
            Assert.True(info.Fields.Single(f => f.Id == "child")
                        .RelatedSchemaIndexing.Fields.Any(f => f.Id == "firstName"));

            Assert.True(info.Fields.Single(f => f.Id == "child")
                        .RelatedSchemaIndexing.Fields.Any(f => f.Id == "lastName"));
            Assert.False(info.Fields.Single(f => f.Id == "child")
                         .RelatedSchemaIndexing.Fields.Any(f => f.Id == "dateOfBirth"));

            Assert.Null(info.Fields.Single(f => f.Id == "child")
                        .RelatedSchemaIndexing.Fields.Single(f => f.Id == "lastName").RelatedSchemaIndexing);
            Assert.Null(info.Fields.Single(f => f.Id == "child")
                        .RelatedSchemaIndexing.Fields.Single(f => f.Id == "firstName").RelatedSchemaIndexing);
        }
        public void ShouldAddIndexOnPropertyPathWithInheritance()
        {
            /// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            /// Act
            var info = builder
                       .AddIndex(p => ((SpecialChild)p.Child).Speciality)
                       .Build();

            /// Assert
            Assert.Contains(info.Fields.Single(f => f.Id == "child").RelatedSchemaIndexing.Fields, f => f.Id == "speciality");
        }
        public void ShouldAddDefaultIndexesWithInheritance()
        {
            /// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            /// Act
            var info = builder
                       .AddDefaultIndexes(p => p.Child, 1)
                       .Build();

            /// Assert
            Assert.Contains(info.Fields.Single(f => f.Id == "child").RelatedSchemaIndexing.Fields, f => f.Id == "speciality");
        }
Example #4
0
        public void ShouldAddIndexOnPropertyPath()
        {
            /// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            /// Act
            var info = builder
                       .AddIndex(p => p.Child.FirstName)
                       .Build();

            var json = JsonConvert.SerializeObject(info, Formatting.Indented);

            /// Assert
            Assert.Contains(info.Fields.Single(f => f.Id == "child").RelatedSchemaIndexing.Fields, f => f.Id == "firstName");
        }
        public void ShouldAddIndexOnCollectionPathWithInheritance()
        {
            /// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            /// Act
            var info = builder
                       .AddIndex(p => p.Children.OfType <SpecialChild>().Select(c => c.Speciality))
                       .Build();

            /// Assert
            Assert.Contains(info.Fields.Single(f => f.Id == "children").RelatedSchemaIndexing.Fields, f => f.Id == "speciality");

            Assert.Null(info.Fields.Single(f => f.Id == "children")
                        .RelatedSchemaIndexing.Fields.Single(f => f.Id == "speciality")
                        .RelatedSchemaIndexing);
        }
Example #6
0
        public void ShouldAddMultipleIndexes()
        {
            //// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            //// Act
            var info = builder
                       .AddIndex(p => p.Foo)
                       .AddIndex(p => p.Bar)
                       .Build();

            var json = JsonConvert.SerializeObject(info, Formatting.Indented);

            //// Assert
            Assert.True(info.Fields.Any(f => f.Id == "foo"));
            Assert.True(info.Fields.Any(f => f.Id == "bar"));

            Assert.Null(info.Fields.Single(f => f.Id == "foo").RelatedSchemaIndexing);
            Assert.Null(info.Fields.Single(f => f.Id == "bar").RelatedSchemaIndexing);
        }
Example #7
0
        public void ShouldAddIndexOnCollectionPath()
        {
            //// Arrange
            var builder = new SchemaIndexingInfoBuilder <Parent>();

            //// Act
            var info = builder
                       .AddIndex(p => p.Children.Select(c => c.FirstName))
                       .Build();

            var json = JsonConvert.SerializeObject(info, Formatting.Indented);

            //// Assert
            Assert.True(info.Fields.Single(f => f.Id == "children")
                        .RelatedSchemaIndexing.Fields.Any(f => f.Id == "firstName"));

            Assert.Null(info.Fields.Single(f => f.Id == "children")
                        .RelatedSchemaIndexing.Fields.Single(f => f.Id == "firstName")
                        .RelatedSchemaIndexing);
        }
Example #8
0
        public void ShouldAddDefaultIndexesOfRootType()
        {
            /// Arrange
            var builder = new SchemaIndexingInfoBuilder <Child>();

            /// Act
            var info = builder
                       .AddDefaultIndexes(1)
                       .Build();

            var json = JsonConvert.SerializeObject(info, Formatting.Indented);

            /// Assert
            Assert.Contains(info.Fields, f => f.Id == "firstName");
            Assert.Contains(info.Fields, f => f.Id == "lastName");
            Assert.DoesNotContain(info.Fields, f => f.Id == "dateOfBirth");

            Assert.Null(info.Fields.Single(f => f.Id == "firstName").RelatedSchemaIndexing);
            Assert.Null(info.Fields.Single(f => f.Id == "lastName").RelatedSchemaIndexing);
        }
 protected override SchemaIndexingInfoBuilder <ClassWithSimpleRelationAndSchemaIndexingInfoProvider> Setup(
     SchemaIndexingInfoBuilder <ClassWithSimpleRelationAndSchemaIndexingInfoProvider> builder)
 {
     return(builder.AddIndexWithSimpleSearch(p => p.RelationField, 11));
 }
 protected abstract SchemaIndexingInfoBuilder <T> Setup(SchemaIndexingInfoBuilder <T> builder);