Newer
Older
GitBucket / src / test / scala / gitbucket / core / service / LabelsServiceSpec.scala
@Naoki Takezoe Naoki Takezoe on 5 Feb 2016 5 KB Migrating testcase to ScalaTest
package gitbucket.core.service

import gitbucket.core.model._
import org.scalatest.FunSpec

class LabelsServiceSpec extends FunSpec with ServiceSpecBase {
  describe("getLabels") {
    it("should be empty when not have any labels") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")

      generateNewUserWithDBRepository("user1", "repo2")
      dummyService.createLabel("user1", "repo2", "label1", "000000")

      generateNewUserWithDBRepository("user2", "repo1")
      dummyService.createLabel("user2", "repo1", "label1", "000000")

      assert(dummyService.getLabels("user1", "repo1").isEmpty)
    }}
    it("should return contained labels") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      val labelId1 = dummyService.createLabel("user1", "repo1", "label1", "000000")
      val labelId2 = dummyService.createLabel("user1", "repo1", "label2", "ffffff")

      generateNewUserWithDBRepository("user1", "repo2")
      dummyService.createLabel("user1", "repo2", "label1", "000000")

      generateNewUserWithDBRepository("user2", "repo1")
      dummyService.createLabel("user2", "repo1", "label1", "000000")

      def getLabels = dummyService.getLabels("user1", "repo1")

      assert(getLabels.length == 2)
      assert(getLabels == List(
        Label("user1", "repo1", labelId1, "label1", "000000"),
        Label("user1", "repo1", labelId2, "label2", "ffffff"))
      )
    }}
  }

  describe("getLabel") {
    it("should return None when the label not exist") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")

      assert(dummyService.getLabel("user1", "repo1", 1) == None)
      assert(dummyService.getLabel("user1", "repo1", "label1") == None)
    }}
    it("should return a label fetched by label id") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      val labelId1 = dummyService.createLabel("user1", "repo1", "label1", "000000")
      dummyService.createLabel("user1", "repo1", "label2", "ffffff")

      generateNewUserWithDBRepository("user1", "repo2")
      dummyService.createLabel("user1", "repo2", "label1", "000000")

      generateNewUserWithDBRepository("user2", "repo1")
      dummyService.createLabel("user2", "repo1", "label1", "000000")

      def getLabel = dummyService.getLabel("user1", "repo1", labelId1)
      assert(getLabel == Some(Label("user1", "repo1", labelId1, "label1", "000000")))
    }}
    it("should return a label fetched by label name") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      val labelId1 = dummyService.createLabel("user1", "repo1", "label1", "000000")
      dummyService.createLabel("user1", "repo1", "label2", "ffffff")

      generateNewUserWithDBRepository("user1", "repo2")
      dummyService.createLabel("user1", "repo2", "label1", "000000")

      generateNewUserWithDBRepository("user2", "repo1")
      dummyService.createLabel("user2", "repo1", "label1", "000000")

      def getLabel = dummyService.getLabel("user1", "repo1", "label1")
      getLabel == Some(Label("user1", "repo1", labelId1, "label1", "000000"))
    }}
  }
  describe("createLabel") {
    it("should return accurate label id") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      generateNewUserWithDBRepository("user1", "repo2")
      generateNewUserWithDBRepository("user2", "repo1")
      dummyService.createLabel("user1", "repo1", "label1", "000000")
      dummyService.createLabel("user1", "repo2", "label1", "000000")
      dummyService.createLabel("user2", "repo1", "label1", "000000")
      val labelId = dummyService.createLabel("user1", "repo1", "label2", "000000")
      assert(labelId == 4)
      def getLabel = dummyService.getLabel("user1", "repo1", labelId)
      assert(getLabel == Some(Label("user1", "repo1", labelId, "label2", "000000")))
    }}
  }
  describe("updateLabel") {
    it("should change target label") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      generateNewUserWithDBRepository("user1", "repo2")
      generateNewUserWithDBRepository("user2", "repo1")
      val labelId = dummyService.createLabel("user1", "repo1", "label1", "000000")
      dummyService.createLabel("user1", "repo2", "label1", "000000")
      dummyService.createLabel("user2", "repo1", "label1", "000000")
      dummyService.updateLabel("user1", "repo1", labelId, "updated-label", "ffffff")
      def getLabel = dummyService.getLabel("user1", "repo1", labelId)
      assert(getLabel == Some(Label("user1", "repo1", labelId, "updated-label", "ffffff")))
    }}
  }
  describe("deleteLabel") {
    it("should remove target label") { withTestDB { implicit session =>
      generateNewUserWithDBRepository("user1", "repo1")
      generateNewUserWithDBRepository("user1", "repo2")
      generateNewUserWithDBRepository("user2", "repo1")
      val labelId = dummyService.createLabel("user1", "repo1", "label1", "000000")
      dummyService.createLabel("user1", "repo2", "label1", "000000")
      dummyService.createLabel("user2", "repo1", "label1", "000000")
      dummyService.deleteLabel("user1", "repo1", labelId)
      assert(dummyService.getLabel("user1", "repo1", labelId) == None)
    }}
  }
}