/*
 * Copyright 2009 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.dev.javac;

import junit.framework.TestCase;
/**
 * Tests for {@link CompilationUnit#isClassNameGenerated}.
 */
public class GeneratedClassnameTest extends TestCase {

  /**
   * Test if {@link CompilingClassLoader#isClassnameGenerated(String)} works
   * correctly.
   */
  public void testGeneratedClassnames() {
    String namesToAccept[] = {
        "Test$1", "Test$10", "Test$Foo$1", "Test$1$Foo", "Test$10$Foo",
        "$$345", "Test$1$Foo$", "Test$1Foo", "Test$2Foo", "Test$Foo$1Bar"};
    String namesToReject[] = {"Test1", "TestFoo", "Test$Foo$Bar", "$345"};

    for (String name : namesToAccept) {
      assertTrue("className = " + name + " should have been accepted",
          CompilationUnit.isClassnameGenerated(name));
    }

    for (String name : namesToReject) {
      assertFalse("className = " + name + " should not have been accepted",
          CompilationUnit.isClassnameGenerated(name));
    }
  }
}
