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.

string_lock_target_test.go 1.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package lockprovider
  2. import (
  3. "testing"
  4. . "github.com/smartystreets/goconvey/convey"
  5. )
  6. func Test_StringLockTarget(t *testing.T) {
  7. cases := []struct {
  8. title string
  9. target1 *StringLockTarget
  10. target2 *StringLockTarget
  11. wantIsConflict bool
  12. }{
  13. {
  14. title: "没有任何段算冲突",
  15. target1: NewStringLockTarget(),
  16. target2: NewStringLockTarget(),
  17. wantIsConflict: true,
  18. },
  19. {
  20. title: "有段,但段内为空,算冲突",
  21. target1: NewStringLockTarget().Add(),
  22. target2: NewStringLockTarget().Add(),
  23. wantIsConflict: true,
  24. },
  25. {
  26. title: "每一段不同才不冲突",
  27. target1: NewStringLockTarget().Add("a").Add("b"),
  28. target2: NewStringLockTarget().Add("b").Add("c"),
  29. wantIsConflict: false,
  30. },
  31. {
  32. title: "只要有一段相同就冲突",
  33. target1: NewStringLockTarget().Add("a").Add("b"),
  34. target2: NewStringLockTarget().Add("a").Add("c"),
  35. wantIsConflict: true,
  36. },
  37. {
  38. title: "同段内,只要有一个数据不同就不冲突",
  39. target1: NewStringLockTarget().Add("a", "b"),
  40. target2: NewStringLockTarget().Add("b", "b"),
  41. wantIsConflict: false,
  42. },
  43. {
  44. title: "同段内,只要每个数据都相同才不冲突",
  45. target1: NewStringLockTarget().Add("a", "b"),
  46. target2: NewStringLockTarget().Add("a", "b"),
  47. wantIsConflict: true,
  48. },
  49. }
  50. for _, ca := range cases {
  51. Convey(ca.title, t, func() {
  52. ret := ca.target1.IsConflict(ca.target2)
  53. So(ret, ShouldEqual, ca.wantIsConflict)
  54. })
  55. }
  56. }

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