public void FilterConvention_Should_Fail_When_FieldHandlerIsNotRegistered() { // arrange var provider = new QueryableFilterProvider( descriptor => { descriptor.AddFieldHandler <QueryableStringEqualsHandler>(); }); var convention = new FilterConvention( descriptor => { descriptor.Operation(DefaultOperations.Equals).Name("eq"); descriptor.BindRuntimeType <string, TestOperationFilterType>(); descriptor.Provider(provider); }); var type = new FooFilterType(); //act SchemaException?error = Assert.Throws <SchemaException>(() => CreateSchemaWith(type, convention)); Assert.Single(error.Errors); error.Errors[0].Message.MatchSnapshot(); }
public void FilterConvention_Should_Fail_When_NoMatchingBindingWasFound() { // arrange var provider = new QueryableFilterProvider( descriptor => { descriptor.AddFieldHandler <QueryableStringEqualsHandler>(); descriptor.AddFieldHandler <QueryableDefaultFieldHandler>(); }); var convention = new FilterConvention( descriptor => { descriptor.Operation(DefaultOperations.Equals).Name("eq"); descriptor.Provider(provider); }); var type = new FooFilterType(); //act SchemaException?error = Assert.Throws <SchemaException>(() => CreateSchemaWith(type, convention)); Assert.Single(error.Errors); #if NETCOREAPP2_1 error.Errors[0].Message.MatchSnapshot(new SnapshotNameExtension("NETCOREAPP2_1")); #else error.Errors[0].Message.MatchSnapshot(); #endif }
public void FilterConvention_Should_Fail_When_OperationsIsNotNamed() { // arrange var provider = new QueryableFilterProvider( descriptor => { descriptor.AddFieldHandler <QueryableStringEqualsHandler>(); descriptor.AddFieldHandler <QueryableDefaultFieldHandler>(); }); var convention = new FilterConvention( descriptor => { descriptor.Operation(DefaultOperations.Equals).Description("eq"); descriptor.BindRuntimeType <string, TestOperationFilterType>(); descriptor.Provider(provider); }); var type = new FooFilterType(); //act ArgumentException error = Assert.Throws <ArgumentException>(() => CreateSchemaWith(type, convention)); #if NETCOREAPP2_1 error.Message.MatchSnapshot(new SnapshotNameExtension("NETCOREAPP2_1")); #else error.Message.MatchSnapshot(); #endif }
public void FilterConvention_Should_Fail_When_OperationsIsNotNamed() { // arrange var provider = new QueryableFilterProvider( descriptor => { descriptor.AddFieldHandler <QueryableStringEqualsHandler>(); descriptor.AddFieldHandler <QueryableDefaultFieldHandler>(); }); var convention = new FilterConvention( descriptor => { descriptor.Operation(DefaultFilterOperations.Equals).Description("eq"); descriptor.BindRuntimeType <string, TestOperationFilterInputType>(); descriptor.Provider(provider); }); var type = new FooFilterInput(); //act ArgumentException error = Assert.Throws <ArgumentException>(() => CreateSchemaWith(type, convention)); Assert.Equal("Name", error.ParamName); }
public void FilterConvention_Should_Work_With_Extensions() { // arrange var provider = new QueryableFilterProvider( descriptor => { descriptor.AddFieldHandler <QueryableStringEqualsHandler>(); descriptor.AddFieldHandler <QueryableDefaultFieldHandler>(); }); var convention = new FilterConvention( descriptor => { }); var extension1 = new FilterConventionExtension( descriptor => { descriptor.BindRuntimeType <string, TestOperationFilterType>(); descriptor.Provider(provider); }); var extension2 = new FilterConventionExtension( descriptor => { descriptor.Operation(DefaultOperations.Equals).Name("eq"); }); IValueNode value = Utf8GraphQLParser.Syntax.ParseValueLiteral("{ bar: { eq:\"a\" }}"); var type = new FooFilterType(); //act CreateSchemaWith(type, convention, extension1, extension2); var executor = new ExecutorBuilder(type); Func <Foo, bool> func = executor.Build <Foo>(value); // assert var a = new Foo { Bar = "a" }; Assert.True(func(a)); var b = new Foo { Bar = "b" }; Assert.False(func(b)); }
public void FilterProvider_Throws_Exception_When_NotInitializedByConvention() { // arrange var provider = new QueryableFilterProvider( descriptor => descriptor.AddFieldHandler <QueryableStringEqualsHandler>()); var context = ConventionContext.Create( null, new ServiceCollection().BuildServiceProvider(), DescriptorContext.Create()); // act provider.Initialize(context); // assert SchemaException exception = Assert.Throws <SchemaException>(() => provider.OnComplete(context)); exception.Message.MatchSnapshot(); }