@Test
  public void testFindEvents() {
    DependencyContainer.getInstance().clear();
    JavaSource javaSource;
    String sourceCode;

    javaSource = new JavaSource("Events");
    sourceCode =
        "     @Stateless\n"
            + "public class Events {\n"
            + "    @PersistenceContext\n"
            + " private EntityManager em;\n"
            + " @Inject\n"
            + " private EventValidator validator;\n"
            + " @Inject\n"
            + " private PrintingService ps;\n"
            + " @Inject\n"
            + " Event<AirEvent> monitoring;\n"
            + " public List<AirEvent> getEvents() {\n"
            + "     return this.em.createNamedQuery(AirEvent.all).getResultList();\n"
            + " }\n"
            + "    }\n";

    javaSource.setSourceCode(sourceCode);
    examiner.examine(javaSource);
    assertEquals(1, DependencyContainer.getInstance().getDependencies(javaSource).size());

    Dependency dependency;
    dependency = DependencyContainer.getInstance().getDependencies(javaSource).get(0);
    assertEquals(DependencyType.EVENT, dependency.getDependencyType());
    assertEquals("Events", dependency.getJavaSourceFrom().getName());
    assertEquals("AirEvent", dependency.getJavaSourceTo().getName());
  }
  @Test
  public void testFindAndSetAttributesSetInstance() {
    DependencyContainer.getInstance().clear();
    JavaSource javaSource;
    String sourceCode;

    javaSource = new JavaSource("TunguskaGate");
    sourceCode =
        "@WebServlet(name = \"TunguskaGate\", urlPatterns = {\"/live/*\"}, asyncSupported = true)\n"
            + "public class TunguskaGate extends HttpServlet {\n"
            + "    @Inject @SnapshotDataCollector\n"
            + "    Event<BrowserWindow> events;\n"
            + "    private final static Logger LOG = Logger.getLogger(TunguskaGate.class.getName());\n"
            + "    @Override\n"
            + "    protected void doGet(HttpServletRequest request, HttpServletResponse response)\n"
            + "            throws ServletException, IOException {\n"
            + "        AsyncContext startAsync = request.startAsync();\n"
            + "        String channel = extractChannel(request.getRequestURI());\n"
            + "        LOG.info(\"Browser is requesting \" + channel);\n"
            + "        if(channel==null||channel.trim().isEmpty()){\n"
            + "            channel = MonitoringController.COMBINED_SNAPSHOT_NAME;\n"
            + "        }\n"
            + "        BrowserWindow browser = new BrowserWindow(startAsync,channel);\n"
            + "        LOG.info(\"Registering browser window(\"+ browser.hashCode() +\") for channel \" + channel);\n"
            + "        events.fire(browser);\n"
            + "        LOG.fine(\"Event sent\");\n"
            + "    }\n"
            + "    }\n";

    javaSource.setSourceCode(sourceCode);
    examiner.examine(javaSource);
    assertEquals(1, DependencyContainer.getInstance().getDependencies(javaSource).size());

    Dependency dependency;
    dependency = DependencyContainer.getInstance().getDependencies(javaSource).get(0);
    assertEquals(DependencyType.EVENT, dependency.getDependencyType());
    assertEquals("TunguskaGate", dependency.getJavaSourceFrom().getName());
    assertEquals("BrowserWindow", dependency.getJavaSourceTo().getName());
  }