### Question:
JsonShareSerialiser implements ShareSerialiser { @Override @Nonnull public Single<Share> deserialise(@Nonnull final String serialisedShare) { checkNotNull(serialisedShare, "\'serialisedShare\' must not be null."); return Single .just(serialisedShare) .map(share -> { final JsonObject jsonObject = new JsonParser().parse(serialisedShare).getAsJsonObject(); final byte[] indexBase64Decoded = Base64.getDecoder().decode(jsonObject.get("index").getAsString()); final byte[] valueBase64Decoded = Base64.getDecoder().decode(jsonObject.get("value").getAsString()); return Share .builder() .setIndex(new BigInteger(indexBase64Decoded)) .setValue(new BigInteger(valueBase64Decoded)) .build(); }) .onErrorResumeNext(error -> Single.error( new DeserialisationException(format("Cannot deserialise \'%1$s\'.", serialisedShare), error))); }  @Override @Nonnull Single<String> serialise(@Nonnull final Share share); @Override @Nonnull Single<Share> deserialise(@Nonnull final String serialisedShare); @Override @Nonnull Single<Boolean> isValidSerialisation(@Nonnull final String serialisedShare);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testDeserialise_nullSerialisedShare() { serialiser.deserialise(null); }