### Question:
ScriptableSink extends NamedSink { @Override public void init() { requireNonNull(this.scriptFile, "Cannot initialize ScriptableSink without script."); try { this.scriptContent = load(this.scriptFile); } catch (IOException ex) { throw new IllegalStateException("Cannot load script from: " + this.scriptFile, ex); } ScriptEngineManager sem = new ScriptEngineManager(); this.engine = sem.getEngineByName("javascript"); try { this.engine.eval(this.scriptContent); } catch (ScriptException ex) { throw new IllegalStateException("Parsing script failed. Problem in line: " + ex.getLineNumber() + " and column: " + ex.getColumnNumber(), ex); } this.invocable = (Invocable) engine; this.sink = this.invocable.getInterface(Sink.class); requireNonNull(this.sink, "Sink instantiation failed - script: " + this.scriptContent + " is incompatible"); this.sink.init(); } ScriptableSink(String scriptFile);  ScriptableSink(String name, String scriptFile);  ScriptableSink(); String load(String file); @Override void init(); @Override void processRow(Row entries); @Override void close(); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test(expected = NullPointerException.class) public void nullScriptIsRecognized() { ScriptableSink sink = new ScriptableSink(); sink.init(); }