From 092a42cf53b01c2976fce69099683cde9f2f42fa Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Tue, 20 Apr 2010 08:41:32 -0400 Subject: [PATCH] Test for extra properties files --- .../changes/first.properties | 1 + .../changes/second.properties | 2 ++ .../project/build.properties | 2 ++ .../project/build/Test.scala | 29 +++++++++++++++++++ .../sbt-test/project/extra-environment/test | 26 +++++++++++++++++ 5 files changed, 60 insertions(+) create mode 100644 sbt/src/sbt-test/project/extra-environment/changes/first.properties create mode 100644 sbt/src/sbt-test/project/extra-environment/changes/second.properties create mode 100644 sbt/src/sbt-test/project/extra-environment/project/build.properties create mode 100644 sbt/src/sbt-test/project/extra-environment/project/build/Test.scala create mode 100644 sbt/src/sbt-test/project/extra-environment/test diff --git a/sbt/src/sbt-test/project/extra-environment/changes/first.properties b/sbt/src/sbt-test/project/extra-environment/changes/first.properties new file mode 100644 index 000000000..865c9991f --- /dev/null +++ b/sbt/src/sbt-test/project/extra-environment/changes/first.properties @@ -0,0 +1 @@ +first.property=set-first \ No newline at end of file diff --git a/sbt/src/sbt-test/project/extra-environment/changes/second.properties b/sbt/src/sbt-test/project/extra-environment/changes/second.properties new file mode 100644 index 000000000..116151c6c --- /dev/null +++ b/sbt/src/sbt-test/project/extra-environment/changes/second.properties @@ -0,0 +1,2 @@ +first.property=set-first +second.property=set-second \ No newline at end of file diff --git a/sbt/src/sbt-test/project/extra-environment/project/build.properties b/sbt/src/sbt-test/project/extra-environment/project/build.properties new file mode 100644 index 000000000..0a2f48ee6 --- /dev/null +++ b/sbt/src/sbt-test/project/extra-environment/project/build.properties @@ -0,0 +1,2 @@ +project.name=test-env +project.version=1.0 \ No newline at end of file diff --git a/sbt/src/sbt-test/project/extra-environment/project/build/Test.scala b/sbt/src/sbt-test/project/extra-environment/project/build/Test.scala new file mode 100644 index 000000000..e812012f4 --- /dev/null +++ b/sbt/src/sbt-test/project/extra-environment/project/build/Test.scala @@ -0,0 +1,29 @@ +import sbt._ + +class Test(info: ProjectInfo) extends DefaultProject(info) +{ + lazy val FirstDefault = "a" + lazy val SecondDefault = "b" + lazy val FirstSet = "set-first" + lazy val SecondSet = "set-second" + + lazy val extra = new BasicEnvironment + { + def log = Test.this.log + def envBackingPath = info.builderPath / "extra.properties" + + lazy val firstProperty = propertyOptional[String](FirstDefault) + lazy val secondProperty = propertyOptional[String](SecondDefault) + } + + import extra.{firstProperty, secondProperty} + + lazy val checkFirstUnset = checkTask(firstProperty, FirstDefault, "first.property") + lazy val checkFirstSet = checkTask(firstProperty, FirstSet, "first.property") + lazy val checkSecondUnset = checkTask(secondProperty, SecondDefault, "second.property") + lazy val checkSecondSet = checkTask(secondProperty, SecondSet, "second.property") + + def checkTask[T](property: extra.Property[T], expected: T, name: String): Task = + task { if(property.value == expected) None else Some("Expected "+name+" to be '" + expected + "', was: " + property.value) } + +} \ No newline at end of file diff --git a/sbt/src/sbt-test/project/extra-environment/test b/sbt/src/sbt-test/project/extra-environment/test new file mode 100644 index 000000000..813a92031 --- /dev/null +++ b/sbt/src/sbt-test/project/extra-environment/test @@ -0,0 +1,26 @@ +# check that both properties are unset + +> check-first-unset +->check-first-set +> check-second-unset +->check-second-set + +# create the extra properties file with only the first property set + +$ copy-file changes/first.properties project/extra.properties +> reload + +-> check-first-unset +>check-first-set +> check-second-unset +->check-second-set + +# create the extra properties file with both properties set + +$ copy-file changes/second.properties project/extra.properties +> reload + +-> check-first-unset +>check-first-set +-> check-second-unset +>check-second-set \ No newline at end of file