You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

update_rep_object_test.go 1.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package task
  2. import (
  3. "testing"
  4. . "github.com/smartystreets/goconvey/convey"
  5. coormsg "gitlink.org.cn/cloudream/rabbitmq/message/coordinator"
  6. )
  7. func Test_chooseUpdateRepObjectNode(t *testing.T) {
  8. testcases := []struct {
  9. title string
  10. nodes []coormsg.PreUpdateRepObjectRespNode
  11. wantNodeID int
  12. }{
  13. {
  14. title: "选择同地域,包含旧数据的节点",
  15. nodes: []coormsg.PreUpdateRepObjectRespNode{
  16. coormsg.NewPreUpdateRepObjectRespNode(0, "", "", true, false),
  17. coormsg.NewPreUpdateRepObjectRespNode(1, "", "", false, false),
  18. coormsg.NewPreUpdateRepObjectRespNode(2, "", "", false, true),
  19. coormsg.NewPreUpdateRepObjectRespNode(3, "", "", true, true),
  20. },
  21. wantNodeID: 3,
  22. },
  23. {
  24. title: "选择包含旧数据的节点",
  25. nodes: []coormsg.PreUpdateRepObjectRespNode{
  26. coormsg.NewPreUpdateRepObjectRespNode(0, "", "", true, false),
  27. coormsg.NewPreUpdateRepObjectRespNode(1, "", "", false, false),
  28. coormsg.NewPreUpdateRepObjectRespNode(2, "", "", false, true),
  29. },
  30. wantNodeID: 2,
  31. },
  32. {
  33. title: "选择包含同地域的节点",
  34. nodes: []coormsg.PreUpdateRepObjectRespNode{
  35. coormsg.NewPreUpdateRepObjectRespNode(0, "", "", true, false),
  36. coormsg.NewPreUpdateRepObjectRespNode(1, "", "", false, false),
  37. },
  38. wantNodeID: 0,
  39. },
  40. }
  41. var tsk UpdateRepObject
  42. for _, test := range testcases {
  43. Convey(test.title, t, func() {
  44. chooseNode := tsk.chooseUpdateRepObjectNode(test.nodes)
  45. So(chooseNode.ID, ShouldEqual, test.wantNodeID)
  46. })
  47. }
  48. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。