public async Task RequestsCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new OrganizationFieldsClient(connection);

                await client.Get(123);

                Received.InOrder(async() =>
                {
                    await connection.Get <OrganizationField>(Arg.Is <Uri>(u => u.ToString() == "organizationFields/123"));
                });
            }
            public void PostsToTheCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new OrganizationFieldsClient(connection);

                var newOrganizationField = new NewOrganizationField("name", FieldType.org);

                client.Create(newOrganizationField);

                connection.Received().Post <OrganizationField>(Arg.Is <Uri>(u => u.ToString() == "organizationFields"),
                                                               Arg.Is <NewOrganizationField>(df => df.Name == "name" &&
                                                                                             df.FieldType == FieldType.org));
            }
            public void PutsCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new OrganizationFieldsClient(connection);

                var editOrganizationField = new OrganizationFieldUpdate {
                    Name = "name", Options = "{}"
                };

                client.Edit(123, editOrganizationField);

                connection.Received().Put <OrganizationField>(Arg.Is <Uri>(u => u.ToString() == "organizationFields/123"),
                                                              Arg.Is <OrganizationFieldUpdate>(df => df.Name == "name" &&
                                                                                               (string)df.Options == "{}"));
            }
            public async Task EnsuresNonNullArguments()
            {
                var client = new OrganizationFieldsClient(Substitute.For <IApiConnection>());

                await Assert.ThrowsAsync <ArgumentNullException>(() => client.Edit(1, null));
            }