12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package super_block
- import (
- "testing"
- )
- func TestReplicaPlacementSerialDeserial(t *testing.T) {
- rp, _ := NewReplicaPlacementFromString("001")
- newRp, _ := NewReplicaPlacementFromByte(rp.Byte())
- if rp.String() != newRp.String() {
- println("expected:", rp.String(), "actual:", newRp.String())
- t.Fail()
- }
- }
- func TestReplicaPlacementHasReplication(t *testing.T) {
- testCases := []struct {
- name string
- replicaPlacement string
- want bool
- }{
- {"empty replica placement", "", false},
- {"no replication", "000", false},
- {"same rack replication", "100", true},
- {"diff rack replication", "020", true},
- {"DC replication", "003", true},
- {"full replication", "155", true},
- }
- for _, tc := range testCases {
- t.Run(tc.name, func(t *testing.T) {
- rp, err := NewReplicaPlacementFromString(tc.replicaPlacement)
- if err != nil {
- t.Errorf("failed to initialize ReplicaPlacement: %v", err)
- return
- }
- if got, want := rp.HasReplication(), tc.want; got != want {
- t.Errorf("expected %v, got %v", want, got)
- }
- })
- }
- }
|