@Test public void testPrefixHeaderInSourceGroup() throws NoSuchBuildTargetException { NewNativeTargetProjectMutator mutator = mutatorWithCommonDefaults(); SourcePath prefixHeader = new FakeSourcePath("Group1/prefix.pch"); mutator.setPrefixHeader(Optional.of(prefixHeader)); NewNativeTargetProjectMutator.Result result = mutator.buildTargetAndAddToProject(generatedProject); // No matter where the prefixHeader file is it should always be directly inside Sources PBXGroup sourcesGroup = result.targetGroup.getOrCreateChildGroupByName("Sources"); assertThat(sourcesGroup.getChildren(), hasSize(1)); PBXFileReference fileRef = (PBXFileReference) Iterables.get(sourcesGroup.getChildren(), 0); assertEquals("prefix.pch", fileRef.getName()); }
@Test public void testLibraryHeaderGroups() throws NoSuchBuildTargetException { NewNativeTargetProjectMutator mutator = mutatorWithCommonDefaults(); SourcePath foo = new FakeSourcePath("HeaderGroup1/foo.h"); SourcePath bar = new FakeSourcePath("HeaderGroup1/bar.h"); SourcePath baz = new FakeSourcePath("HeaderGroup2/baz.h"); mutator.setPublicHeaders(ImmutableSet.of(bar, baz)); mutator.setPrivateHeaders(ImmutableSet.of(foo)); NewNativeTargetProjectMutator.Result result = mutator.buildTargetAndAddToProject(generatedProject); PBXGroup sourcesGroup = result.targetGroup.getOrCreateChildGroupByName("Sources"); assertThat(sourcesGroup.getChildren(), hasSize(2)); PBXGroup group1 = (PBXGroup) Iterables.get(sourcesGroup.getChildren(), 0); assertEquals("HeaderGroup1", group1.getName()); assertThat(group1.getChildren(), hasSize(2)); PBXFileReference fileRefBar = (PBXFileReference) Iterables.get(group1.getChildren(), 0); assertEquals("bar.h", fileRefBar.getName()); PBXFileReference fileRefFoo = (PBXFileReference) Iterables.get(group1.getChildren(), 1); assertEquals("foo.h", fileRefFoo.getName()); PBXGroup group2 = (PBXGroup) Iterables.get(sourcesGroup.getChildren(), 1); assertEquals("HeaderGroup2", group2.getName()); assertThat(group2.getChildren(), hasSize(1)); PBXFileReference fileRefBaz = (PBXFileReference) Iterables.get(group2.getChildren(), 0); assertEquals("baz.h", fileRefBaz.getName()); }