public async Task PublishSubEvent_UnusableListForSubscriptionEvents_ThrowsException() { var server = new TestServerBuilder() .AddGraphController <InvokableController>() .Build(); var fieldContextBuilder = server.CreateFieldContextBuilder <InvokableController>( nameof(InvokableController.MutationRaisesSubEvent)); var arg1Value = "random string"; fieldContextBuilder.AddInputArgument("arg1", arg1Value); var resolutionContext = fieldContextBuilder.CreateResolutionContext(); // prepopulate with a collection thats not really a collection var eventCollection = new TwoPropertyObject(); resolutionContext.Request.Items.TryAdd(SubscriptionConstants.RAISED_EVENTS_COLLECTION_KEY, eventCollection); var controller = new InvokableController(); Assert.ThrowsAsync <GraphExecutionException>(async() => { var result = await controller.InvokeActionAsync(fieldContextBuilder.GraphMethod.Object, resolutionContext); }); await Task.CompletedTask; }
public Task <IGraphActionResult> WatchForWidgets(TwoPropertyObject data, string nameLike = "*") { if (data.Property1 == nameLike || nameLike == "*") { return(Task.FromResult(this.Ok(data))); } else { return(Task.FromResult(this.Ok(null))); } }
public TwoPropertyObject WatchObjects(TwoPropertyObject data, string propLike = "*") { if (propLike == "*") { return(data); } if (data.Property1.Contains(propLike)) { return(data); } return(null); }
public void OfTypeButNotType() { // V1 and V3 implement a common interface var list = new List <ITwoPropertyObject>(); var obj1 = new TwoPropertyObject(); var obj3 = new TwoPropertyObjectV3(); list.Add(obj1); list.Add(obj3); var result = list.OfTypeButNotType <ITwoPropertyObject, TwoPropertyObject>(); Assert.AreEqual(1, result.Count()); Assert.AreEqual(obj3, result.First()); }
public List <TwoPropertyObject> CollectionQueryMethod() { var list = new List <TwoPropertyObject>(); for (var i = 0; i < 3; i++) { var obj = new TwoPropertyObject() { Property1 = "string" + i, Property2 = i, }; list.Add(obj); } return(list); }
public async Task ExecutionOfAQueryPlan_WithValidDefaultObject_forSubscription_YieldsResult() { var server = new TestServerBuilder() .AddGraphType <SubQueryController>() .AddSubscriptionServer() .Build(); var template = TemplateHelper.CreateActionMethodTemplate <SubQueryController>(nameof(SubQueryController.RetrieveObject)); var sourceObject = new TwoPropertyObject() { Property1 = "testA", Property2 = 5, }; // Add a default value for the "retrieveObject" method, which is a subscription action // this mimics recieving an subscription event data source and executing the default, normal pipeline // to produce a final result that can be returned along the client connection var builder = server.CreateQueryContextBuilder() .AddQueryText("subscription { subscriptionData { retrieveObject { property1 } } }") .AddDefaultValue(template.Route, sourceObject); var result = await server.RenderResult(builder); var expectedOutput = @"{ ""data"" : { ""subscriptionData"" : { ""retrieveObject"" : { ""property1"" : ""testA"" } } } }"; CommonAssertions.AreEqualJsonStrings(expectedOutput, result); }
public TwoPropertyObject MultipleDeclaredSourceParams([SubscriptionSource] TwoPropertyObject data2, [SubscriptionSource] TwoPropertyObjectV2 data) { return(null); }
public TwoPropertyObject ComplexValue(TwoPropertyObject arg1 = null) { return(arg1); }
public IGraphActionResult TestExtensionMethod(TwoPropertyObject sourceData, int arg1) { return(null); }
public TwoPropertyObject TestActionMethod(TwoPropertyObject sourceData, string arg1, int arg2) { return(sourceData); }
public string FetchComplexValue(TwoPropertyObject arg4) { return(string.Empty); }
public TwoPropertyObject TestActionMethod(string arg1, ulong arg2, TwoPropertyObject itemA) { return(new TwoPropertyObject()); }
public TwoPropertyObject WatchForPropObject(TwoPropertyObject obj) { return(obj); }
public TwoPropertyObject RetrieveObject(TwoPropertyObject source) { return(source); }
public TwoPropertyObject DeclaredSourceSecond(TwoPropertyObject data2, [SubscriptionSource] TwoPropertyObjectV2 data) { return(null); }
public TwoPropertyObject DeclaredSourceFirst([SubscriptionSource] TwoPropertyObjectV2 data, TwoPropertyObject data2) { return(null); }
public TwoPropertyObject InvalidEventNameMethod(TwoPropertyObject data) { return(data); }
public TwoPropertyObject SingleMethod(TwoPropertyObject data) { return(data); }