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 async Task CanDelete()
            {
                var pipedrive = Helper.GetAuthenticatedClient();
                var fixture   = pipedrive.OrganizationField;

                var newOrganizationField = new NewOrganizationField("new-name", FieldType.varchar_auto);
                var organizationField    = await fixture.Create(newOrganizationField);

                var createdOrganizationField = await fixture.Get(organizationField.Id.Value);

                Assert.NotNull(createdOrganizationField);

                await fixture.Delete(createdOrganizationField.Id.Value);

                await Assert.ThrowsAsync <NotFoundException>(() => fixture.Get(createdOrganizationField.Id.Value));
            }
            public async Task CanCreate()
            {
                var pipedrive = Helper.GetAuthenticatedClient();
                var fixture   = pipedrive.OrganizationField;

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

                var organizationField = await fixture.Create(newOrganizationField);

                Assert.NotNull(organizationField);

                var retrieved = await fixture.Get(organizationField.Id.Value);

                Assert.NotNull(retrieved);

                // Cleanup
                await fixture.Delete(organizationField.Id.Value);
            }
            public async Task CanEdit()
            {
                var pipedrive = Helper.GetAuthenticatedClient();
                var fixture   = pipedrive.OrganizationField;

                var newOrganizationField = new NewOrganizationField("new-name", FieldType.varchar);
                var organizationField    = await fixture.Create(newOrganizationField);

                var editOrganizationField = organizationField.ToUpdate();

                editOrganizationField.Name = "updated-name";

                var updatedOrganizationField = await fixture.Edit(organizationField.Id.Value, editOrganizationField);

                Assert.Equal("updated-name", updatedOrganizationField.Name);
                Assert.Equal(FieldType.varchar, updatedOrganizationField.FieldType);

                // Cleanup
                await fixture.Delete(updatedOrganizationField.Id.Value);
            }