### Question:
PriceDraftDsl extends Base implements PriceDraft { public PriceDraftDsl withCountryCode(@Nullable final String countryCode) { return PriceDraftBuilder.of(this).countryCode(countryCode).build(); } @JsonCreator  PriceDraftDsl(final MonetaryAmount value, @Nullable final CountryCode country,
                  @Nullable final Reference<CustomerGroup> customerGroup, @Nullable final ResourceIdentifier<Channel> channel,
                  @Nullable final ZonedDateTime validFrom, @Nullable final ZonedDateTime validUntil,
                  @Nullable final CustomFieldsDraft custom, @Nullable final List<PriceTier> tiers); MonetaryAmount getValue(); @Nullable CountryCode getCountry(); @Nullable Reference<CustomerGroup> getCustomerGroup(); @Nullable ResourceIdentifier<Channel> getChannel(); @Nullable ZonedDateTime getValidFrom(); @Nullable ZonedDateTime getValidUntil(); @Override @Nullable CustomFieldsDraft getCustom(); @Nullable @Override List<PriceTier> getTiers(); PriceDraftDsl withCustomerGroup(@Nullable final Referenceable<CustomerGroup> customerGroup); PriceDraftDsl withCustomerGroupId(@Nullable final String customerGroupId); PriceDraftDsl withCountryCode(@Nullable final String countryCode); PriceDraftDsl withCountry(@Nullable final CountryCode country); PriceDraftDsl withChannel(@Nullable final Referenceable<Channel> channel); PriceDraftDsl withValue(final MonetaryAmount value); PriceDraftDsl withValidFrom(final ZonedDateTime validFrom); PriceDraftDsl withValidUntil(final ZonedDateTime validUntil); PriceDraftDsl withCustom(@Nullable final CustomFieldsDraft custom); @JsonIgnore static PriceDraftDsl of(final MonetaryAmount money); @JsonIgnore static PriceDraftDsl of(final BigDecimal amount, final CurrencyUnit currencyUnit); static PriceDraftDsl of(final Price template);  }### Answer:
@Test public void withCountryCode() { final PriceDraft draft = PriceDraftDsl.of(MoneyImpl.ofCents(123, "EUR")).withCountryCode("DE"); assertThat(draft.getCountry()).isEqualTo(CountryCode.DE); }