### Question:
Analyzer { public Analyzer(AnalyzerOptions opts) throws Throwable { if (opts == null) { throw new IllegalArgumentException(); } SchemaSourceFactory.reset(); this.tee = buildExecutionEngine(TRANSIENT_SITE_NUM); this.options = opts; this.invoker = new AnalyzerInvoker(this); this.currentSource = null; } Analyzer(AnalyzerOptions opts); void loadSchema(Template template, Database db, DBNative dbNative); void resolveSchemaObjects(final List<Database> databases, final CorpusStats corpusStats); abstract void onStatement(String sql, SourcePosition sp, Statement s); abstract void onException(String sql, SourcePosition sp, Throwable t); abstract void onNotice(String sql, SourcePosition sp, String message); SourcePosition convert(LineInfo li, AnalyzerSource src); void refresh(); AnalyzerOptions getOptions(); ParserInvoker getInvoker(); void setSource(AnalyzerSource as); AnalyzerSource getCurrentSource(); String getPrimaryDatabase(); @SuppressWarnings("unused") void onFinished();  }### Answer:
@SuppressWarnings({ "unused" }) @Test public void testAnalyzer() throws Throwable { new Emulator(new AnalyzerOptions(), new AnalysisResultHandler()); new ExpectedExceptionTester() { @Override public void test() throws Throwable { new Emulator(null, new AnalysisResultHandler()); } }.assertException(IllegalArgumentException.class); new ExpectedExceptionTester() { @Override public void test() throws Throwable { new Emulator(new AnalyzerOptions(), null); } }.assertException(IllegalArgumentException.class); }