Skip to content
quarry Artifact [2faa56ae72]
Login

Artifact [2faa56ae72]

Artifact 2faa56ae72c3e2d7a62f5114e8d47059c08ed2cb0d7a713130d196d89b9accc0:


package oltp

import (
	"testing"
)

// One sequence per repository, in the order given; a numbered ticket
// keeps its number; a number moves to the artifact a local ticket was
// promoted into.
func TestTicketNumbersAreOneSequencePerRepository(t *testing.T) {
	d := openTest(t)
	if err := d.TicketNumbersAssign("q", []string{"aa", "bb"}); err != nil {
		t.Fatal(err)
	}
	if err := d.TicketNumbersAssign("q", []string{"bb", "cc"}); err != nil {
		t.Fatal(err)
	}
	if err := d.TicketNumbersAssign("other", []string{"zz"}); err != nil {
		t.Fatal(err)
	}
	got, _ := d.TicketNumbers("q")
	if got["aa"] != 1 || got["bb"] != 2 || got["cc"] != 3 || len(got) != 3 {
		t.Fatalf("FAIL: %v", got)
	}
	if o, _ := d.TicketNumbers("other"); o["zz"] != 1 {
		t.Fatalf("FAIL: another repository shares the sequence: %v", o)
	}
	if err := d.TicketNumberRekey("q", "cc", "cc-fossil"); err != nil {
		t.Fatal(err)
	}
	if id, ok, _ := d.TicketNumbered("q", 3); !ok || id != "cc-fossil" {
		t.Fatalf("FAIL: #3 names %q after the re-key", id)
	}
	t.Log("ok: 1 2 3 in order, bb kept its number, another repository starts at 1, #3 follows the promotion")
}