use of com.google.copybara.Transformation in project copybara by google.
the class SequenceTest method testSequence_noopIfAnyNoop_someChildNoops.
@Test
public void testSequence_noopIfAnyNoop_someChildNoops() throws Exception {
TransformWork work = uncachedTreeStateTransformWork();
MockTransform t1 = new MockTransform("t1");
MockTransform t2 = new MockTransform("t2").setNoop(true);
MockTransform t3 = new MockTransform("t3");
Transformation t = sequence(Sequence.NoopBehavior.NOOP_IF_ANY_NOOP, t1, t2, t3);
TransformationStatus status = t.transform(work);
assertThat(t1.wasRun).isTrue();
assertThat(t2.wasRun).isTrue();
assertThat(t3.wasRun).isFalse();
assertThat(status.isNoop()).isTrue();
}
use of com.google.copybara.Transformation in project copybara by google.
the class SequenceTest method testSequence_noopIfAllNoop_allChildNoops.
@Test
public void testSequence_noopIfAllNoop_allChildNoops() throws Exception {
TransformWork work = uncachedTreeStateTransformWork();
MockTransform t1 = new MockTransform("t1").setNoop(true);
MockTransform t2 = new MockTransform("t2").setNoop(true);
MockTransform t3 = new MockTransform("t3").setNoop(true);
Transformation t = sequence(Sequence.NoopBehavior.NOOP_IF_ALL_NOOP, t1, t2, t3);
TransformationStatus status = t.transform(work);
assertThat(t1.wasRun).isTrue();
assertThat(t2.wasRun).isTrue();
assertThat(t3.wasRun).isTrue();
assertThat(status.isNoop()).isTrue();
}
use of com.google.copybara.Transformation in project copybara by google.
the class SequenceTest method testSequence_nestedSequences_missOnSecondCache.
@Test
public void testSequence_nestedSequences_missOnSecondCache() throws Exception {
TransformWork work = cachedTreeStateTransformWork();
MockTransform t1 = new MockTransform("t1").setUseTreeState(false);
MockTransform t2 = new MockTransform("t2").setUseTreeState(true).setExpectCacheHit(false);
MockTransform t3 = new MockTransform("t3").setUseTreeState(true).setExpectCacheHit(true);
MockTransform t4 = new MockTransform("t4").setUseTreeState(true).setExpectCacheHit(true);
Transformation t = sequence(sequence(t1, t2), sequence(t3, t4));
t.transform(work);
assertThat(t1.wasRun).isTrue();
assertThat(t2.wasRun).isTrue();
assertThat(t3.wasRun).isTrue();
assertThat(t4.wasRun).isTrue();
}
use of com.google.copybara.Transformation in project copybara by google.
the class SkylarkTransformationTest method testStarlarkTransform_convertToString.
@Test
public void testStarlarkTransform_convertToString() throws Exception {
Transformation t = skylark.eval("t", "" + "def _foo_impl(ctx):\n" + " pass\n" + "\n" + "t = core.dynamic_transform(_foo_impl, {'a': 1})");
assertThat(t.describe()).isEqualTo("_foo_impl");
assertThat(t.toString()).isEqualTo("Foo{a=1}");
}
use of com.google.copybara.Transformation in project copybara by google.
the class SkylarkTransformationTest method testStarlarkTransform_returnValueCanBeCasedOn.
@Test
public void testStarlarkTransform_returnValueCanBeCasedOn() throws Exception {
Transformation t = skylark.eval("t", "" + "def foo(ctx):\n" + " return ctx.success()\n" + "\n" + "s = core.dynamic_transform(foo)" + "\n" + "def bar(ctx):\n" + " status = ctx.run(s)\n" + " if not status.is_success:\n" + " core.fail_with_noop()\n" + " if status.is_noop:\n" + " core.fail_with_noop()\n" + " return status" + "\n" + "t = core.dynamic_transform(foo)");
TransformationStatus status = t.transform(transformWork);
assertThat(status.isSuccess()).isTrue();
}
Aggregations