log_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package migrate
  2. import (
  3. "fmt"
  4. "net/url"
  5. "reflect"
  6. "testing"
  7. "time"
  8. )
  9. func TestNewCommand(t *testing.T) {
  10. entries, err := DecodeLog4FromFile("fixtures/cmdlog")
  11. if err != nil {
  12. t.Errorf("read log file error: %v", err)
  13. }
  14. zeroTime, err := time.Parse(time.RFC3339, "1969-12-31T16:00:00-08:00")
  15. if err != nil {
  16. t.Errorf("couldn't create time: %v", err)
  17. }
  18. m := NewMember("alice", []url.URL{{Scheme: "http", Host: "127.0.0.1:7001"}}, etcdDefaultClusterName)
  19. m.ClientURLs = []string{"http://127.0.0.1:4001"}
  20. tests := []interface{}{
  21. &JoinCommand{"alice", "http://127.0.0.1:7001", "http://127.0.0.1:4001", *m},
  22. &NOPCommand{},
  23. &NOPCommand{},
  24. &RemoveCommand{"alice", 0xe52ada62956ff923},
  25. &CompareAndDeleteCommand{"foo", "baz", 9},
  26. &CompareAndSwapCommand{"foo", "bar", zeroTime, "baz", 9},
  27. &CreateCommand{"foo", "bar", zeroTime, true, true},
  28. &DeleteCommand{"foo", true, true},
  29. &SetCommand{"foo", "bar", zeroTime, true},
  30. &SyncCommand{zeroTime},
  31. &UpdateCommand{"foo", "bar", zeroTime},
  32. }
  33. raftMap := make(map[string]uint64)
  34. for i, test := range tests {
  35. e := entries[i]
  36. cmd, err := NewCommand4(e.GetCommandName(), e.GetCommand(), raftMap)
  37. if err != nil {
  38. t.Errorf("#%d: %v", i, err)
  39. continue
  40. }
  41. if !reflect.DeepEqual(cmd, test) {
  42. if i == 5 {
  43. fmt.Println(cmd.(*CompareAndSwapCommand).ExpireTime.Location())
  44. }
  45. t.Errorf("#%d: cmd = %+v, want %+v", i, cmd, test)
  46. }
  47. }
  48. }