diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-04 13:35:04 -0700 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-04 13:35:04 -0700 |
commit | c103d7b024c3b0edce800c0dbd4cfaffd1aabfba (patch) | |
tree | 9f05c389e8909ae26cd54245af45d5649c1891e9 | |
parent | abc88346a0e296a44fd9627e2a4fea6d609f7771 (diff) | |
download | mill-c103d7b024c3b0edce800c0dbd4cfaffd1aabfba.tar.gz mill-c103d7b024c3b0edce800c0dbd4cfaffd1aabfba.tar.bz2 mill-c103d7b024c3b0edce800c0dbd4cfaffd1aabfba.zip |
Add some tests to verify Cacher happy-paths
-rw-r--r-- | core/src/test/scala/forge/CacherTests.scala | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/core/src/test/scala/forge/CacherTests.scala b/core/src/test/scala/forge/CacherTests.scala new file mode 100644 index 00000000..4c346e5e --- /dev/null +++ b/core/src/test/scala/forge/CacherTests.scala @@ -0,0 +1,50 @@ +package forge + +import forge.util.OSet +import utest._ +import utest.framework.TestPath + +object CacherTests extends TestSuite{ + object Base extends Base + trait Base extends Target.Cacher{ + def value = T{ 1 } + } + object Middle extends Middle + trait Middle extends Base{ + override def value = T{ super.value() + 2} + def overriden = T{ super.value()} + } + object Terminal extends Terminal + trait Terminal extends Middle{ + override def value = T{ super.value() + 4} + } + + val tests = Tests{ + + + def eval[T: Discovered, V](base: T, v: Target[V])(implicit tp: TestPath) = { + val workspace = ammonite.ops.pwd / 'target / 'workspace / tp.value + val evaluator = new Evaluator(workspace, Discovered.mapping(base)) + evaluator.evaluate(OSet(v)).values(0) + } + + 'simpleDefIsCached - assert( + Base.value eq Base.value, + eval(Base, Base.value) == 1 + ) + + 'overridingDefIsAlsoCached - assert( + eval(Middle, Middle.value) == 3, + Middle.value eq Middle.value + ) + + 'overridenDefRemainsAvailable - assert( + eval(Middle, Middle.overriden) == 1 + ) + + 'multipleOverridesWork- assert( + eval(Terminal, Terminal.value) == 7, + eval(Terminal, Terminal.overriden) == 1 + ) + } +} |