public void WhenNewVoucherIsUsed_ShouldBeAbleToClaim()
        {
            var newVoucher     = _sutVoucherCreator.Create(VoucherType.FreeShipping);
            var claimedVoucher = _sutVoucherClaimer.Claim(newVoucher.Id);

            claimedVoucher.Id.Should().Be(newVoucher.Id);
        }
 public NewVoucher Create(VoucherType voucherType)
 {
     try
     {
         var voucher = _voucherCreator.Create(voucherType);
         return(voucher);
     }
     catch (CouldNotConstructDomainObject e)
     {
         throw new CouldNotCreateAVoucher(
                   "Exception occurred creating domain object for a new voucher",
                   e);
     }
     catch (Exception e)
     {
         throw new CouldNotCreateAVoucher(
                   "Generic exception occurred while creating a new voucher",
                   e);
     }
 }