Skip to content

Commit de2cc89

Browse files
committed
initial working test for OpenAIServiceWrapper (cequence-io#24)
1 parent 435f1fa commit de2cc89

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed

build.sbt

+10
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,27 @@ ThisBuild / scalaVersion := scala212
1010
ThisBuild / version := "0.3.3"
1111
ThisBuild / isSnapshot := false
1212

13+
lazy val commonSettings = Seq(
14+
libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.16",
15+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.16" % Test,
16+
libraryDependencies += "org.mockito" %% "mockito-scala-scalatest" % "1.17.14" % Test
17+
)
18+
1319
lazy val core = (project in file("openai-core"))
20+
.settings(commonSettings: _*)
1421

1522
lazy val client = (project in file("openai-client"))
23+
.settings(commonSettings: _*)
1624
.dependsOn(core)
1725
.aggregate(core)
1826

1927
lazy val client_stream = (project in file("openai-client-stream"))
28+
.settings(commonSettings: _*)
2029
.dependsOn(client)
2130
.aggregate(client)
2231

2332
lazy val guice = (project in file("openai-guice"))
33+
.settings(commonSettings: _*)
2434
.dependsOn(client)
2535
.aggregate(client_stream)
2636

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,48 @@
11
package io.cequence.openaiscala.service
22

3-
class OpenAIServiceWrapperSpec extends AnySpec with should.Matchers {
3+
import io.cequence.openaiscala.domain.response.{ModelInfo, Permission}
4+
import org.mockito.scalatest.MockitoSugar
5+
import org.scalatest.concurrent.ScalaFutures.convertScalaFuture
6+
import org.scalatest.matchers.should
7+
import org.scalatest.wordspec.AnyWordSpecLike
8+
9+
import scala.concurrent.Future
10+
import scala.concurrent.duration.DurationInt
11+
12+
class OpenAIServiceWrapperSpec
13+
extends AnyWordSpecLike
14+
with should.Matchers
15+
with MockitoSugar {
16+
17+
"OpenAIServiceWrapper" should {
18+
19+
class MockWrapper(val underlying: OpenAIService)
20+
extends OpenAIServiceWrapper {
21+
override protected def wrap[T](fun: OpenAIService => Future[T]): Future[T] = {
22+
fun(underlying)
23+
}
24+
25+
override def close: Unit = {}
26+
}
27+
28+
"call wrap for listModels" in {
29+
val mockService = mock[OpenAIService]
30+
val wrapper = new MockWrapper(mockService)
31+
val testModels = Array(
32+
ModelInfo(
33+
"test",
34+
new java.util.Date(0L),
35+
owned_by = "test_owner",
36+
root = "test_root",
37+
parent = None,
38+
permission = Array[Permission]()
39+
)
40+
)
41+
when(mockService.listModels).thenReturn(Future.successful {
42+
testModels
43+
})
44+
wrapper.listModels.futureValue should be(testModels)
45+
}
46+
}
447

548
}

0 commit comments

Comments
 (0)