mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-07 22:15:51 +01:00
add test
This commit is contained in:
@@ -2,17 +2,17 @@ package gitbucket.core.api
|
|||||||
import gitbucket.core.model.{Account, ReleaseAsset, ReleaseTag}
|
import gitbucket.core.model.{Account, ReleaseAsset, ReleaseTag}
|
||||||
import gitbucket.core.util.RepositoryName
|
import gitbucket.core.util.RepositoryName
|
||||||
|
|
||||||
case class ApiReleaseAsset(name: String, size: Long)(asset: ReleaseAsset, repositoryName: RepositoryName) {
|
case class ApiReleaseAsset(name: String, size: Long)(tag: String, fileName: String, repositoryName: RepositoryName) {
|
||||||
val label = name
|
val label = name
|
||||||
val file_id = asset.fileName
|
val file_id = fileName
|
||||||
val browser_download_url = ApiPath(
|
val browser_download_url = ApiPath(
|
||||||
s"/api/v3/repos/${repositoryName.fullName}/releases/${asset.tag}/assets/${asset.fileName}"
|
s"/api/v3/repos/${repositoryName.fullName}/releases/${tag}/assets/${fileName}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
object ApiReleaseAsset {
|
object ApiReleaseAsset {
|
||||||
def apply(asset: ReleaseAsset, repositoryName: RepositoryName): ApiReleaseAsset =
|
def apply(asset: ReleaseAsset, repositoryName: RepositoryName): ApiReleaseAsset =
|
||||||
ApiReleaseAsset(asset.label, asset.size)(asset, repositoryName)
|
ApiReleaseAsset(asset.label, asset.size)(asset.tag, asset.fileName, repositoryName)
|
||||||
}
|
}
|
||||||
|
|
||||||
case class ApiRelease(
|
case class ApiRelease(
|
||||||
|
|||||||
@@ -388,6 +388,25 @@ object ApiSpecModels {
|
|||||||
`object` = ApiObject(sha1)
|
`object` = ApiObject(sha1)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val assetFileName = "010203040a0b0c0d"
|
||||||
|
|
||||||
|
val apiReleaseAsset = ApiReleaseAsset(
|
||||||
|
name = "release.zip",
|
||||||
|
size = 100
|
||||||
|
)(
|
||||||
|
tag = "tag1",
|
||||||
|
fileName = assetFileName,
|
||||||
|
repositoryName = repo1Name
|
||||||
|
)
|
||||||
|
|
||||||
|
val apiRelease = ApiRelease(
|
||||||
|
name = "release1",
|
||||||
|
tag_name = "tag1",
|
||||||
|
body = Some("content"),
|
||||||
|
author = apiUser,
|
||||||
|
assets = Seq(apiReleaseAsset)
|
||||||
|
)
|
||||||
|
|
||||||
// JSON String for APIs
|
// JSON String for APIs
|
||||||
|
|
||||||
val jsonUser = """{
|
val jsonUser = """{
|
||||||
@@ -649,4 +668,21 @@ object ApiSpecModels {
|
|||||||
|
|
||||||
val jsonRef = """{"ref":"refs/heads/featureA","object":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}"""
|
val jsonRef = """{"ref":"refs/heads/featureA","object":{"sha":"6dcb09b5b57875f334f61aebed695e2e4193db5e"}}"""
|
||||||
|
|
||||||
|
val jsonReleaseAsset =
|
||||||
|
s"""{
|
||||||
|
|"name":"release.zip",
|
||||||
|
|"size":100,
|
||||||
|
|"label":"release.zip",
|
||||||
|
|"file_id":"${assetFileName}",
|
||||||
|
|"browser_download_url":"http://gitbucket.exmple.com/api/v3/repos/octocat/Hello-World/releases/tag1/assets/${assetFileName}"
|
||||||
|
|}""".stripMargin
|
||||||
|
|
||||||
|
val jsonRelease =
|
||||||
|
s"""{
|
||||||
|
|"name":"release1",
|
||||||
|
|"tag_name":"tag1",
|
||||||
|
|"body":"content",
|
||||||
|
|"author":${jsonUser},
|
||||||
|
|"assets":[${jsonReleaseAsset}]
|
||||||
|
|}""".stripMargin
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,4 +73,10 @@ class JsonFormatSpec extends FunSuite {
|
|||||||
test("apiRef") {
|
test("apiRef") {
|
||||||
assert(JsonFormat(apiRef) == expected(jsonRef))
|
assert(JsonFormat(apiRef) == expected(jsonRef))
|
||||||
}
|
}
|
||||||
|
test("apiReleaseAsset") {
|
||||||
|
assert(JsonFormat(apiReleaseAsset) == expected(jsonReleaseAsset))
|
||||||
|
}
|
||||||
|
test("apiRelease") {
|
||||||
|
assert(JsonFormat(apiRelease) == expected(jsonRelease))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user