public MaterialRevision filter(MaterialRevision previous) { if (modifications.shouldBeIgnoredByFilterIn(material.config())) { return previous; } else { return this; } }
public boolean shouldIgnore(MaterialRevision revision) { Material material = revision.getMaterial(); for (MaterialConfig materialConfig : node.materialConfigs()) { if (material.hasSameFingerprint(materialConfig)) { return revision.getModifications().shouldBeIgnoredByFilterIn(materialConfig); } } throw new RuntimeException("Material not found: " + material);//IMP: because, config can change between BCPS call and build cause production - shilpa/jj } }
@Test public void shouldNeverIgnorePackageMaterialModifications() { PackageMaterialConfig packageMaterialConfig = new PackageMaterialConfig(); Filter filter = packageMaterialConfig.filter(); MatcherAssert.assertThat(filter, is(notNullValue())); MatcherAssert.assertThat(new Modifications().shouldBeIgnoredByFilterIn(packageMaterialConfig), is(false)); }
@Test public void shouldIgnoreModificationsIfAllTheIgnoresMatch() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("*.doc"), new IgnoredFiles("*.pdf"))); materialConfig.setFilter(filter); assertThat(new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf"))).shouldBeIgnoredByFilterIn(materialConfig), is(true)); assertThat(new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.doc"))).shouldBeIgnoredByFilterIn(materialConfig), is(true)); assertThat(new Modifications(multipleCheckin(aCheckIn("100", "a.pdf", "b.pdf"), aCheckIn("100", "a.doc", "b.doc"))).shouldBeIgnoredByFilterIn(materialConfig), is(true)); }
@Test public void shouldIgnoreModificationsIfWildcardBlacklist() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("**/*"))); materialConfig.setFilter(filter); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(true)); }
@Test public void shouldIgnoreModificationsIfInvertFilterAndEmptyIgnoreList() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(); materialConfig.setFilter(filter); materialConfig.setInvertFilter(true); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(true)); }
@Test public void shouldIgnoreModificationsIfInvertFilterAndSpecificFileNotChanged2() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("foo/bar.baz"))); materialConfig.setFilter(filter); materialConfig.setInvertFilter(true); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.java", "foo", "bar.baz", "foo/bar.qux"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(true)); }
@Test public void shouldIncludeModificationsIfInvertFilterAndWildcardBlacklist() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("**/*"))); materialConfig.setFilter(filter); materialConfig.setInvertFilter(true); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(false)); }
@Test public void shouldIncludeModificationsIfInvertFilterAndSpecificIsChanged() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("foo/bar.baz"))); materialConfig.setFilter(filter); materialConfig.setInvertFilter(true); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("101", "foo/bar.baz"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(false)); }
@Test public void shouldIgnoreModificationsIfInvertFilterAndSpecificFileNotChanged() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("*.foo"))); materialConfig.setFilter(filter); materialConfig.setInvertFilter(true); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(true)); }
@Test public void shouldIncludeModificationsIfAnyFileIsNotIgnored() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("*.doc"), new IgnoredFiles("*.pdf"))); materialConfig.setFilter(filter); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(false)); }
@Test public void shouldIncludeModificationsIfAnyFileIsNotIgnored1() { HgMaterialConfig materialConfig = MaterialConfigsMother.hgMaterialConfig(); Filter filter = new Filter(Arrays.asList(new IgnoredFiles("*.doc"), new IgnoredFiles("*.pdf"))); materialConfig.setFilter(filter); Modifications modifications = new Modifications(multipleCheckin(aCheckIn("100", "a.doc", "a.pdf"), aCheckIn("100", "a.java"))); assertThat(modifications.shouldBeIgnoredByFilterIn(materialConfig), is(false)); }