Skip to content

Commit

Permalink
added EntitySpecs
Browse files Browse the repository at this point in the history
  • Loading branch information
Timothy Hahn committed Feb 20, 2014
1 parent 7828f61 commit d83ce80
Show file tree
Hide file tree
Showing 5 changed files with 83 additions and 4 deletions.
4 changes: 2 additions & 2 deletions crane/src/main/scala/crane/Entity.scala
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class Entity(var tag:String = "") {
case Some(w: World) =>
w._removeEntity(this, true)
case _ =>
throw new DeadEntityException
{}
}
_world = None
components.clear()
Expand All @@ -102,7 +102,7 @@ class Entity(var tag:String = "") {
case Some(w: World) =>
w.removeEntity(this)
case _ =>
throw new DeadEntityException
_kill()
}
} else {
throw new DeadEntityException
Expand Down
58 changes: 58 additions & 0 deletions crane/src/test/scala/crane/EntitySpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package crane

import org.scalatest.FlatSpec
import org.scalamock.scalatest.MockFactory

class EntitySpec extends FlatSpec with MockFactory {
"an entity" should "have a tag" in {
var entity = Entity()
assert(entity.tag == "")
entity = new Entity("tag")
assert(entity.tag == "tag")
}

it should "have components" in {
val entity = Entity()
val component = mock[Component]
entity.components += component
assert(entity.components.length == 1)

assert(entity.getComponent(component.getClass) match {
case Some(s) => true
case _ => false
})

assert(entity.getComponent(classOf[Component]) match {
case Some(s) => false
case _ => true
})
}

it should "die when killed" in {
val entity = Entity()
val component = mock[Component]
entity.components += component
assert(entity.alive == true)
assert(entity.components.length == 1)

entity.kill()
assert(entity.alive == false)
assert(entity.components.length == 0)
}

it should "throw a DeadEntityException when it is dead" in {
import crane.exceptions.DeadEntityException
val entity = Entity()

entity.kill()

intercept[DeadEntityException] {
entity.kill()
}

intercept[DeadEntityException] {
entity.removeComponent(classOf[Component])
}
}
}

10 changes: 10 additions & 0 deletions crane/src/test/scala/crane/SystemSpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package crane

import org.scalatest.FlatSpec

class SystemSpec extends FlatSpec {
"a world" should "hi" in {
assert(0 == 0)
}
}

10 changes: 10 additions & 0 deletions crane/src/test/scala/crane/WorldSpec.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package crane

import org.scalatest.FlatSpec

class WorldSpec extends FlatSpec {
"a world" should "hi" in {
assert(0 == 0)
}
}

5 changes: 3 additions & 2 deletions project/build.scala
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ object Dependencies {
import Dependency._
val crane = Seq(
Dependency.akkaActor, Dependency.akkaTransactor, Dependency.scalaSTM, Dependency.scalatime,
Dependency.scalatest
Dependency.scalamock
)
val examples = Seq(
Dependency.scalatime
Expand All @@ -94,5 +94,6 @@ object Dependency {
val akkaTransactor = "com.typesafe.akka" %% "akka-transactor" % V.Akka
val scalaSTM = "org.scala-stm" %% "scala-stm" % "0.7"
val scalatime = "com.github.nscala-time" %% "nscala-time" % "0.8.0"
val scalatest = "org.scalatest" % "scalatest_2.10" % "2.0" % "test"
val scalamock = "org.scalamock" %% "scalamock-scalatest-support" % "3.0.1" % "test"
val akkatest = "com.typesafe.akka" %% "akka-testkit" % V.Akka % "test"
}

0 comments on commit d83ce80

Please sign in to comment.