public void testJavaClassNameSource() {
    SoyFileNode soyFileNode = forFilePathAndNamespace("BooFoo.soy", "aaa.bbb.cccDdd");
    assertEquals("BooFoo", SOY_FILE_NAME.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("blah/bleh/boo_foo.soy", "aaa.bbb.cccDdd");
    assertEquals("BooFoo", SOY_FILE_NAME.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("boo-FOO.soy", "aaa.bbb.cccDdd");
    assertEquals("BooFoo", SOY_FILE_NAME.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("\\BLAH\\BOO_FOO.SOY", "aaa.bbb.cccDdd");
    assertEquals("BooFoo", SOY_FILE_NAME.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("", "cccDdd");
    assertEquals("CccDdd", SOY_NAMESPACE_LAST_PART.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("", "aaa.bbb.cccDdd");
    assertEquals("CccDdd", SOY_NAMESPACE_LAST_PART.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("", "aaa_bbb.ccc_ddd");
    assertEquals("CccDdd", SOY_NAMESPACE_LAST_PART.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("", "CccDdd");
    assertEquals("CccDdd", SOY_NAMESPACE_LAST_PART.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("", "aaa.bbb.ccc_DDD");
    assertEquals("CccDdd", SOY_NAMESPACE_LAST_PART.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("BooFoo.soy", "aaa.bbb.cccDdd");
    assertEquals("File", GENERIC.generateBaseClassName(soyFileNode));

    soyFileNode = forFilePathAndNamespace("blah/bleh/boo-foo.soy", "ccc_ddd");
    assertEquals("File", GENERIC.generateBaseClassName(soyFileNode));
  }
 // AngryCamel - 20120817 1620 - added isGeneric
 public boolean isGeneric() {
   return GENERIC.equals(type);
 }