/*
* Copyright (c) 2013, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html
*
* 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.dart.tools.core.internal.analysis.model;
import com.google.dart.engine.source.DirectoryBasedSourceContainer;
import com.google.dart.engine.source.FileBasedSource;
import com.google.dart.engine.source.SourceContainer;
import static com.google.dart.engine.utilities.io.FileUtilities2.createFile;
import junit.framework.TestCase;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Tests for {@link CompositeSourceContainer}
*/
public class CompositeSourceContainerTest extends TestCase {
public void test_contains() {
File dir1 = createFile("/does/not/exist");
File file1 = createFile("/does/not/exist/some.dart");
File file2 = createFile("/does/not/exist/folder/some2.dart");
File dir2 = createFile("/dir2/folder");
File file3 = createFile("/dir2/folder/some3.dart");
File file4 = createFile("/dir2/folder2/some4.dart");
FileBasedSource source1 = new FileBasedSource(file1);
FileBasedSource source2 = new FileBasedSource(file2);
FileBasedSource source3 = new FileBasedSource(file3);
FileBasedSource source4 = new FileBasedSource(file4);
List<SourceContainer> containers = new ArrayList<SourceContainer>();
containers.add(new DirectoryBasedSourceContainer(dir1));
containers.add(new DirectoryBasedSourceContainer(dir2));
CompositeSourceContainer container = new CompositeSourceContainer(containers);
assertTrue(container.contains(source1));
assertTrue(container.contains(source2));
assertTrue(container.contains(source3));
assertFalse(container.contains(source4));
InvertedSourceContainer invertedSourceContainer = new InvertedSourceContainer(container);
assertFalse(invertedSourceContainer.contains(source1));
assertFalse(invertedSourceContainer.contains(source2));
assertFalse(invertedSourceContainer.contains(source3));
assertTrue(invertedSourceContainer.contains(source4));
}
}