@@ -1,8 +1,6 @@
package longevity.integration.withComponentSet

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class InMemWithComponentSetSpec extends Suites(context.longevityContext.inMemRepoPoolSpec)
@@ -1,8 +1,6 @@
package longevity.integration.withComponentSet

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class MongoWithComponentSetSpec extends Suites(context.longevityContext.repoPoolSpec)
@@ -1,8 +1,6 @@
package longevity.integration.withComponentWithAssoc

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class InMemWithComponentWithAssocSpec extends Suites(context.longevityContext.inMemRepoPoolSpec)
@@ -1,8 +1,6 @@
package longevity.integration.withComponentWithAssoc

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class MongoWithComponentWithAssocSpec extends Suites(context.longevityContext.repoPoolSpec)
@@ -1,8 +1,6 @@
package longevity.integration.withComponentWithShorthands

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class InMemWithComponentWithShorthandsSpec extends Suites(context.longevityContext.inMemRepoPoolSpec)
@@ -1,8 +1,6 @@
package longevity.integration.withComponentWithShorthands

import longevity.IntegrationTest

import org.scalatest.Suites

@IntegrationTest
class MongoWithComponentWithShorthandsSpec extends Suites(context.longevityContext.repoPoolSpec)
@@ -1,15 +1,15 @@
package longevity.persistence
package longevity.unit.persistence

import org.scalatest._
import org.scalatest.OptionValues._
import longevity.persistence.messageFriend._
import longevity.persistence.messageFriend.context._
import longevity.unit.persistence.messageFriend._
import longevity.unit.persistence.messageFriend.context._
import emblem.imports._
import longevity.persistence._

/** unit tests for the proper construction of [[LongevityContext.repoPool]] and
* [[LongevityContext.inMemRepoPool]]
*/
@longevity.UnitTest
class LongevityContextRepoPoolSpec extends FlatSpec with GivenWhenThen with Matchers {

behavior of "a repo pool of an in-memory longevity context"
@@ -1,4 +1,4 @@
package longevity.persistence
package longevity.unit.persistence

import longevity.context._
import longevity.subdomain._
@@ -1,13 +1,13 @@
package longevity.subdomain
package longevity.unit.subdomain

import com.github.nscala_time.time.Imports._
import emblem.imports._
import longevity.exceptions._
import org.scalatest._
import longevity.integration.master._
import longevity.subdomain._

/** unit tests for the proper construction of [[RootEntityType#NatKeyProp nat key props]] */
@longevity.UnitTest
class NatKeyPropSpec extends FlatSpec with GivenWhenThen with Matchers {

behavior of "RootEntityType.NatKeyProp.apply(String)"
@@ -1,13 +1,12 @@
package longevity.subdomain
package longevity.unit.subdomain

import emblem.imports._
import longevity.exceptions.NatKeyDoesNotContainPropException
import longevity.exceptions.NatKeyPropValTypeMismatchException
import longevity.exceptions.SubdomainException
import longevity.exceptions.UnsetNatKeyPropException
import org.scalatest._
import NatKeySpec._
import NatKeySpec.NatKeySampler._
import longevity.subdomain._

object NatKeySpec {

@@ -44,16 +43,18 @@ object NatKeySpec {
}

/** unit tests for the proper construction of [[RootEntityType#NatKeyProp nat key props]] */
@longevity.UnitTest
class NatKeySpec extends FlatSpec with GivenWhenThen with Matchers {

import NatKeySpec.NatKeySampler
import NatKeySpec.NatKeySampler._

behavior of "RootEntityType.natKey factory methods"

they should "throw exception when called after subdomain initialization" in {

// trigger subdomain initialization
import longevity.context._
val longevityContext = LongevityContext(context.subdomain, Mongo)
val longevityContext = LongevityContext(NatKeySpec.context.subdomain, Mongo)

intercept[SubdomainException] {
NatKeySampler.natKey("boolean", "char")
@@ -54,11 +54,25 @@ trait BuildSettings {
testOptions in Test += Tests.Argument("-oF"),

// dependencies
resolvers += "Typesafe repository releases" at "http://repo.typesafe.com/typesafe/releases/",
//resolvers += "Typesafe repository releases" at "http://repo.typesafe.com/typesafe/releases/",
resolvers += Resolver.typesafeRepo("releases"),
libraryDependencies += ("org.scala-lang" % "scala-reflect" % scalaVersion.value),
libraryDependencies += ("org.scala-lang.modules" %% "scala-async" % "0.9.2"),
libraryDependencies += ("com.github.nscala-time" %% "nscala-time" % "1.0.0"),
libraryDependencies += ("org.scalatest" %% "scalatest" % "2.2.1" % "test")
libraryDependencies += ("org.scalatest" %% "scalatest" % "2.2.1" % "test"),

// publish
publishMavenStyle := true,
publishTo := {
val nexus = "https://oss.sonatype.org/"
if (isSnapshot.value)
Some("snapshots" at nexus + "content/repositories/snapshots")
else
Some("releases" at nexus + "service/local/staging/deploy/maven2")
},
licenses := Seq("Apache License, Version 2.0" ->
url("http://www.apache.org/licenses/LICENSE-2.0"))

)

private def gitHash = sys.process.Process("git rev-parse HEAD").lines_!.head
@@ -76,30 +90,34 @@ object LongevityBuild extends Build with BuildSettings {
lazy val emblem = Project(
id = "emblem",
base = file("emblem"),
settings = buildSettings :+ (version := "0.1-SNAPSHOT")
settings = buildSettings ++ Seq(
version := "0.1-SNAPSHOT",
homepage := Some(url("https://github.com/sullivan-/emblem")),
pomExtra := (
<scm>
<url>git@github.com:sullivan-/emblem.git</url>
<connection>scm:git:git@github.com:sullivan-/emblem.git</connection>
</scm>
<developers>
<developer>
<id>sullivan-</id>
<name>John Sullivan</name>
<url>https://github.com/sullivan-</url>
</developer>
</developers>)
)
)

lazy val longevity = Project(
id = "longevity",
base = file("longevity"),
settings =
buildSettings :+
(version := "0.1-SNAPSHOT") :+
(libraryDependencies += "org.mongodb" %% "casbah" % "2.8.2") :+
(libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.1" % "provided")
settings = buildSettings ++ Seq(
version := "0.2-SNAPSHOT",
libraryDependencies += "org.mongodb" %% "casbah" % "2.8.2",
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.1" % "provided"
)
)
.dependsOn(emblem)
.configs(UnitTest, IntegrationTest, MasterIntegrationTest)
.settings(inConfig(UnitTest)(Defaults.testTasks): _*)
.settings(testOptions in UnitTest := Seq(Tests.Argument("-n", "longevity.UnitTest")))
.settings(inConfig(IntegrationTest)(Defaults.testTasks): _*)
.settings(testOptions in IntegrationTest := Seq(Tests.Argument("-n", "longevity.IntegrationTest")))
.settings(inConfig(MasterIntegrationTest)(Defaults.testTasks): _*)
.settings(testOptions in MasterIntegrationTest := Seq(Tests.Argument("-n", "longevity.MasterIntegrationTest")))

lazy val UnitTest = config("unit") extend (Test)
lazy val IntegrationTest = config("integration") extend (Test)
lazy val MasterIntegrationTest = config("master") extend (Test)

lazy val musette = Project(
id = "musette",