예제 #1
0
        public async Task ShouldPartiallyUpdateCurrencyWithCorrectData()
        {
            // Arrange
            var client = GetGraphQLClient()
                         .WithAuthorization(IdentityServerSetup.Instance.GetAccessTokenForUser("user", "password").Result);

            const int    id   = 1;
            const string code = "code";
            const string name = "name";

            var partialUpdateCurrencyRequest = new GraphQLRequest
            {
                Query         = @"
mutation myMutation($id:ID! $code:String $name:String) {
  countryData {
    currency {
      partialUpdate(currency: {
        id:$id
        code:$code
        name:$name
      }) {
        id
        name
        code
      }
    }
  }
}",
                OperationName = "myMutation",
                Variables     = new
                {
                    id,
                    code,
                    name
                }
            };

            // Act
            var response = await client.SendMutationAsync(partialUpdateCurrencyRequest);

            // Assert
            response.Errors.Should().BeNull();
            ModelCurrency updatedCurrency = response.Data.countryData.currency.partialUpdate.ToObject <ModelCurrency>();

            updatedCurrency.Should().NotBeNull();
            updatedCurrency.Id.Should().Be(id);
            updatedCurrency.Code.Should().Be(code);
            updatedCurrency.Name.Should().Be(name);
        }
예제 #2
0
        public async Task ShouldInsertCurrencyWithCorrectData()
        {
            // Arrange
            var client = GetGraphQLClient(false)
                         .WithAuthorization(IdentityServerSetup.Instance.GetAccessTokenForUser("user", "password").Result);

            const string code = "code";
            const string name = "name";

            var insertCurrencyRequest = new GraphQLRequest
            {
                Query         = @"
mutation myMutation($code:String! $name:String!) {
  countryData {
    currency {
      insert(currency: {
        code:$code
        name:$name
      }) {
        id
        name
        code
      }
    }
  }
}",
                OperationName = "myMutation",
                Variables     = new
                {
                    code,
                    name
                }
            };

            // Act
            var response = await client.SendMutationAsync(insertCurrencyRequest);

            // Assert
            response.Errors.Should().BeNull();
            ModelCurrency createdCurrency = response.Data.countryData.currency.insert.ToObject <ModelCurrency>();

            createdCurrency.Should().NotBeNull();
            createdCurrency.Id.Should().NotBe(default(int));
            createdCurrency.Code.Should().Be(code);
            createdCurrency.Name.Should().Be(name);
        }