public async Task When_everything_is_fine_expected_queries_and_commands_should_be_invoked() { _queryExecuter.Execute(Arg.Any <GetUserBySsnQuery>()).Returns(Task.FromResult((true, new User("1234567890", "Nils", "Gold smith"), 0))); await _sut.Run(new UpdateUserRequest { Name = "Nisse", Ssn = "1234567890", Work = "Gold digger" }); await _queryExecuter.Received().Execute(Arg.Any <GetUserBySsnQuery>()); await _commandHandler.Received().Handle(Arg.Any <UpdateNameCommand>(), Arg.Any <User>()); await _commandHandler.Received().Handle(Arg.Any <UpdateWorkCommand>(), Arg.Any <User>()); }
public void GraphQLOrgVariableExample() { // arrange var query = @" query HeroNameAndFriends($episode: Episode) { hero(episode: $episode) { name friends { name } } }"; var variables = new Dictionary <string, object> { { "episode", new EnumValueNode("JEDI") } }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public void GraphQLOrgFragmentExample() { // arrange var query = @" { leftComparison: hero(episode: EMPIRE) { ...comparisonFields } rightComparison: hero(episode: JEDI) { ...comparisonFields } } fragment comparisonFields on Character { name appearsIn friends { name } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public TResult Execute(TQuery query) { // if it is on cache return the result TResult result; if (!IsCached(query, out result)) { // otherwise lock other threads // on the same query var queryObject = _queries.GetOrAdd(query, k => new QueryObject() { Query = k }); lock (queryObject) { // double check it is not cached already if (!IsCached(query, out result)) { result = _inner.Execute(queryObject.Query); PopulateCache(query, result); } } } return(result); }
public void GraphQLOrgMetaFieldAndUnionExample() { // arrange var query = @" { search(text: ""an"") { __typename ... on Human { name height } ... on Droid { name primaryFunction } ... on Starship { name length } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgInlineFragmentExample2() { // arrange var query = @" query HeroForEpisode($ep: Episode!) { hero(episode: $ep) { name ... on Droid { primaryFunction } ... on Human { height } } }"; var variables = new Dictionary <string, object> { { "ep", new EnumValueNode("EMPIRE") }, }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public void GraphQLOrgMutationExample() { // arrange var query = @" mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) { createReview(episode: $ep, review: $review) { stars commentary } }"; var variables = new Dictionary <string, object> { { "ep", new EnumValueNode("JEDI") }, { "review", new ObjectValueNode( new ObjectFieldNode("stars", new IntValueNode(5)), new ObjectFieldNode("commentary", new StringValueNode("This is a great movie!"))) } }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public void GraphQLOrgDirectiveSkipExample2() { // arrange var query = @" query Hero($episode: Episode, $withFriends: Boolean!) { hero(episode: $episode) { name friends @skip(if: $withFriends) { name } } }"; var variables = new Dictionary <string, object> { { "episode", new EnumValueNode("JEDI") }, { "withFriends", new BooleanValueNode(true) } }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public static IExecutionResult Execute( this IQueryExecuter executer, string query, IReadOnlyDictionary <string, object> variableValues) { return(executer.Execute( new QueryRequest(query) { VariableValues = variableValues })); }
public void ExecutionDepthShouldNotLeadToEmptyObects() { // arrange var query = @" query foo { hero(episode: NEWHOPE) { __typename id name ... on Human { __typename homePlanet } ... on Droid { __typename primaryFunction } friends { __typename ... on Human { __typename homePlanet friends { __typename } } ... on Droid { __typename primaryFunction friends { __typename } } } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable( new QueryExecutionOptions { MaxExecutionDepth = 3 }); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public async Task <(bool success, User model, int status)> Run(UpdateUserRequest request) { _log.LogInformation($"Running process {GetType().Name}"); try { var getUserQuery = new GetUserBySsnQuery(request.Ssn, _userStorage); var(success, updatedUser, status) = await _queryExecuter.Execute(getUserQuery); if (!success) { _log.LogInformation($"Failed getting user {request.Ssn}"); return(false, default, status);
public void EnumValueIsCoercedToListValue() { // arrange var query = @" { heroes(episodes: EMPIRE) { name } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgFieldArgumentExample2() { // arrange var query = @" { human(id: ""1000"") { name height(unit: FOOT) } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgAliasExample() { // arrange var query = @" { empireHero: hero(episode: EMPIRE) { name } jediHero: hero(episode: JEDI) { name } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgVariableWithDefaultValueExample() { // arrange var query = @" query HeroNameAndFriends($episode: Episode = JEDI) { hero(episode: $episode) { name friends { name } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgOperationNameExample() { // arrange var query = @" query HeroNameAndFriends { hero { name friends { name } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void ConditionalInlineFragment() { // arrange var query = @" { heroes(episodes: [EMPIRE]) { name ... @include(if: true) { height } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void Execute_ListWithNullValues_ResultContainsNullElement() { // arrange var query = @" query { human(id: ""1001"") { id name otherHuman { name } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void TypeNameFieldIsCorrectlyExecutedOnInterfaces() { // arrange var query = @" query foo { hero(episode: NEWHOPE) { __typename id name ... on Human { __typename homePlanet } ... on Droid { __typename primaryFunction } friends { __typename ... on Human { __typename homePlanet } ... on Droid { __typename primaryFunction } } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void GraphQLOrgFieldExample() { // arrange var query = @" { hero { name # Queries can have comments! friends { name } } }"; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query); // assert result.Snapshot(); }
public void NonNullEnumsSerializeCorrectlyFromVariables() { // arrange var query = @" query getHero($episode: Episode!) { hero(episode: $episode) { name } }"; var variables = new Dictionary <string, object> { ["episode"] = "NEWHOPE" }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public void NonNullListVariableValues() { // arrange var query = @" query op($ep: [Episode!]!) { heroes(episodes: $ep) { name } }"; var variables = new Dictionary <string, object> { { "ep", new ListValueNode(new[] { new EnumValueNode("EMPIRE") }) } }; IQueryExecuter executer = CreateSchema().MakeExecutable(); // act IExecutionResult result = executer.Execute(query, variables); // assert result.Snapshot(); }
public static IExecutionResult Execute( this IQueryExecuter executer, string query) { return(executer.Execute(new QueryRequest(query))); }