### Question:
EditOfferDataModel extends MutableOfferDataModel { @Override public boolean initWithData(OfferPayload.Direction direction, TradeCurrency tradeCurrency) { try { return super.initWithData(direction, tradeCurrency); } catch (NullPointerException e) { if (e.getMessage().contains("tradeCurrency")) { throw new IllegalArgumentException("Offers of removed assets cannot be edited. You can only cancel it.", e); } return false; } } @Inject  EditOfferDataModel(CreateOfferService createOfferService,
                       OpenOfferManager openOfferManager,
                       BtcWalletService btcWalletService,
                       BsqWalletService bsqWalletService,
                       Preferences preferences,
                       User user,
                       P2PService p2PService,
                       PriceFeedService priceFeedService,
                       AccountAgeWitnessService accountAgeWitnessService,
                       FeeService feeService,
                       @Named(FormattingUtils.BTC_FORMATTER_KEY) CoinFormatter btcFormatter,
                       CorePersistenceProtoResolver corePersistenceProtoResolver,
                       MakerFeeProvider makerFeeProvider,
                       TradeStatisticsManager tradeStatisticsManager,
                       Navigation navigation); void reset(); void applyOpenOffer(OpenOffer openOffer); @Override boolean initWithData(OfferPayload.Direction direction, TradeCurrency tradeCurrency); void populateData(); void onStartEditOffer(ErrorMessageHandler errorMessageHandler); void onPublishOffer(ResultHandler resultHandler, ErrorMessageHandler errorMessageHandler); void onCancelEditOffer(ErrorMessageHandler errorMessageHandler);  }### Answer:
@Test public void testInitializeEditOfferWithRemovedAsset() { exception.expect(IllegalArgumentException.class); model.initWithData(OfferPayload.Direction.BUY, null); }