forked from nova/jmonkey-test
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.1 KiB
66 lines
2.1 KiB
package wow.doge.mygame
|
|
|
|
import org.scalatest.funsuite.AnyFunSuite
|
|
import monix.execution.Scheduler.Implicits.global
|
|
import cats.syntax.eq._
|
|
import com.jme3.{asset => jmea}
|
|
import com.jme3.asset.DesktopAssetManager
|
|
import wow.doge.mygame.utils.wrappers.jme.AssetManager
|
|
import wow.doge.mygame.utils.wrappers.jme.AssetManager.AssetNotFound
|
|
import com.jme3.scene.Geometry
|
|
import wow.doge.mygame.utils.wrappers.jme.AssetManager.CouldNotCastError
|
|
import com.jme3.scene.Node
|
|
import com.jme3.material.MaterialDef
|
|
import com.jme3.material.Material
|
|
import scala.annotation.nowarn
|
|
|
|
@nowarn("msg=method get in class LeftProjection is deprecated")
|
|
@nowarn("msg=method right in class Either is deprecated")
|
|
@nowarn("msg=method get in class RightProjection is deprecated")
|
|
class AssetManagerTest extends AnyFunSuite {
|
|
|
|
val _assetManager: jmea.AssetManager = new DesktopAssetManager(true)
|
|
val assetManager = new AssetManager(_assetManager)
|
|
|
|
test("Test for AssetNotFound error") {
|
|
val res =
|
|
assetManager.loadModel(os.rel / "doesnotexist").attempt.runSyncUnsafe()
|
|
assert(res.isLeft)
|
|
assert(res.left.get eqv AssetNotFound("doesnotexist"))
|
|
}
|
|
|
|
test("Test for Model CouldNotCastError") {
|
|
val modelPath = os.rel / "Models" / "Jaime" / "Jaime.j3o"
|
|
val res1 = assetManager
|
|
.loadModelAs[Geometry](modelPath)
|
|
.attempt
|
|
.runSyncUnsafe()
|
|
assert(res1.isLeft)
|
|
assert(res1.left.get eqv CouldNotCastError)
|
|
|
|
val res2 = assetManager
|
|
.loadModelAs[Node](modelPath)
|
|
.attempt
|
|
.runSyncUnsafe()
|
|
assert(res2.isRight)
|
|
assert(res2.map(_.getName).right.get eqv "JaimeGeom-ogremesh")
|
|
}
|
|
|
|
test("Test for Asset CouldNotCastError") {
|
|
val assetPath = os.rel / "Common" / "MatDefs" / "Misc" / "Unshaded.j3md"
|
|
|
|
val res1 = assetManager
|
|
.loadAssetAs[Material](assetPath)
|
|
.attempt
|
|
.runSyncUnsafe()
|
|
assert(res1.isLeft)
|
|
assert(res1.left.get eqv CouldNotCastError)
|
|
|
|
val res2 = assetManager
|
|
.loadAssetAs[MaterialDef](assetPath)
|
|
.attempt
|
|
.runSyncUnsafe()
|
|
assert(res2.isRight)
|
|
assert(res2.map(_.getName).right.get eqv "Unshaded")
|
|
}
|
|
}
|