Alexis Hernandez
7 years ago
4 changed files with 72 additions and 0 deletions
@ -0,0 +1,13 @@ |
|||
package com.xsn.explorer.services |
|||
|
|||
import javax.inject.Inject |
|||
|
|||
import com.alexitc.playsonify.core.FutureApplicationResult |
|||
import com.xsn.explorer.models.rpc.ServerStatistics |
|||
|
|||
class StatisticsService @Inject() (xsnService: XSNService) { |
|||
|
|||
def getServerStatistics(): FutureApplicationResult[ServerStatistics] = { |
|||
xsnService.getServerStatistics() |
|||
} |
|||
} |
@ -0,0 +1,16 @@ |
|||
package controllers |
|||
|
|||
import javax.inject.Inject |
|||
|
|||
import com.xsn.explorer.services.StatisticsService |
|||
import controllers.common.{MyJsonController, MyJsonControllerComponents} |
|||
|
|||
class StatisticsController @Inject() ( |
|||
statisticsService: StatisticsService, |
|||
cc: MyJsonControllerComponents) |
|||
extends MyJsonController(cc) { |
|||
|
|||
def getStatus() = publicNoInput { _ => |
|||
statisticsService.getServerStatistics() |
|||
} |
|||
} |
@ -0,0 +1,41 @@ |
|||
package controllers |
|||
|
|||
import com.alexitc.playsonify.core.FutureApplicationResult |
|||
import com.xsn.explorer.helpers.DummyXSNService |
|||
import com.xsn.explorer.models.Height |
|||
import com.xsn.explorer.models.rpc.ServerStatistics |
|||
import com.xsn.explorer.services.XSNService |
|||
import controllers.common.MyAPISpec |
|||
import org.scalactic.Good |
|||
import play.api.inject.bind |
|||
import play.api.test.Helpers._ |
|||
|
|||
import scala.concurrent.Future |
|||
|
|||
class StatisticsControllerSpec extends MyAPISpec { |
|||
|
|||
val stats = ServerStatistics(Height(45454), 93548, BigDecimal("77645419.93177629")) |
|||
|
|||
val customXSNService = new DummyXSNService { |
|||
override def getServerStatistics(): FutureApplicationResult[ServerStatistics] = { |
|||
val result = Good(stats) |
|||
Future.successful(result) |
|||
} |
|||
} |
|||
|
|||
override val application = guiceApplicationBuilder |
|||
.overrides(bind[XSNService].to(customXSNService)) |
|||
.build() |
|||
|
|||
"GET /stats" should { |
|||
"return the server statistics" in { |
|||
val response = GET("/stats") |
|||
|
|||
status(response) mustEqual OK |
|||
val json = contentAsJson(response) |
|||
(json \ "height").as[Int] mustEqual stats.height.int |
|||
(json \ "transactions").as[Int] mustEqual stats.transactions |
|||
(json \ "totalSupply").as[BigDecimal] mustEqual stats.totalSupply |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue