// Ensure the store can update a retention policy. func TestStore_UpdateRetentionPolicy(t *testing.T) { t.Parallel() s := MustOpenStore() defer s.Close() // Create database. if _, err := s.CreateDatabase("db0"); err != nil { t.Fatal(err) } else if _, err := s.CreateRetentionPolicy("db0", &meta.RetentionPolicyInfo{Name: "rp0", ReplicaN: 1}); err != nil { t.Fatal(err) } // Update policy. var rpu meta.RetentionPolicyUpdate rpu.SetName("rp1") rpu.SetDuration(10 * time.Hour) if err := s.UpdateRetentionPolicy("db0", "rp0", &rpu); err != nil { t.Fatal(err) } // Ensure policy is updated. if rpi, err := s.RetentionPolicy("db0", "rp1"); err != nil { t.Fatal(err) } else if !reflect.DeepEqual(rpi, &meta.RetentionPolicyInfo{ Name: "rp1", Duration: 10 * time.Hour, ShardGroupDuration: 1 * time.Hour, ReplicaN: 1, }) { t.Fatalf("unexpected policy: %#v", rpi) } }
// Ensure that a retention policy can be updated. func TestData_UpdateRetentionPolicy(t *testing.T) { var data meta.Data if err := data.CreateDatabase("db0"); err != nil { t.Fatal(err) } else if err = data.CreateRetentionPolicy("db0", &meta.RetentionPolicyInfo{Name: "rp0", ReplicaN: 1}); err != nil { t.Fatal(err) } // Update the policy. var rpu meta.RetentionPolicyUpdate rpu.SetName("rp1") rpu.SetDuration(10 * time.Hour) rpu.SetReplicaN(3) if err := data.UpdateRetentionPolicy("db0", "rp0", &rpu); err != nil { t.Fatal(err) } // Verify the policy was changed. if rpi, _ := data.RetentionPolicy("db0", "rp1"); !reflect.DeepEqual(rpi, &meta.RetentionPolicyInfo{ Name: "rp1", Duration: 10 * time.Hour, ShardGroupDuration: 3600000000000, ReplicaN: 3, }) { t.Fatalf("unexpected policy: %#v", rpi) } }