|
1 | 1 | package io.cequence.openaiscala.service
|
2 | 2 |
|
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 | + } |
4 | 47 |
|
5 | 48 | }
|
0 commit comments