### Question:
DeserializerRegistryImpl implements DeserializerRegistry { @Override public void registerDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer) { if ((key == null) || (deserializer == null)) { throw new IllegalArgumentException("MessageCodeKey or Deserializer is null"); } OFGeneralDeserializer desInRegistry = registry.put(key, deserializer); if (desInRegistry != null) { LOG.debug("Deserializer for key {} overwritten. Old deserializer: {}, new deserializer: {}", key, desInRegistry.getClass().getName(), deserializer.getClass().getName()); } if (deserializer instanceof DeserializerRegistryInjector) { ((DeserializerRegistryInjector) deserializer).injectDeserializerRegistry(this); } }  @Override void init(); @Override @SuppressWarnings("unchecked") T getDeserializer(MessageCodeKey key); @Override void registerDeserializer(MessageCodeKey key, OFGeneralDeserializer deserializer); @Override boolean unregisterDeserializer(MessageCodeKey key);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void testRegisterDeserializerNoArgs(){ DeserializerRegistryImpl serReg = new DeserializerRegistryImpl(); serReg.registerDeserializer(null, null); }
@Test(expected = IllegalArgumentException.class) public void testRegisterDeserializerNoKey(){ DeserializerRegistryImpl serReg = new DeserializerRegistryImpl(); serReg.registerDeserializer(null, new MatchDeserializer()); }
@Test(expected = IllegalArgumentException.class) public void testRegisterDeserializerNoDeserializer(){ DeserializerRegistryImpl serReg = new DeserializerRegistryImpl(); serReg.registerDeserializer(new MessageCodeKey(OF13, EMPTY_VALUE, Match.class), null); }