MCPcopy
hub / github.com/ory/keto / IsolationTest

Function IsolationTest

internal/relationtuple/manager_isolation.go:44–132  ·  view source on GitHub ↗
(t *testing.T, m0, m1 Manager)

Source from the content-addressed store, hash-verified

42}
43
44func IsolationTest(t *testing.T, m0, m1 Manager) {
45 ctx := context.Background()
46 run := twice(t, m0, m1)
47
48 run("suite=lifecycle", func(t *testing.T, m0, m1 Manager) {
49 nspace := t.Name()
50
51 rts := []*RelationTuple{
52 {
53 Namespace: nspace,
54 Object: uuid.Must(uuid.NewV4()),
55 Relation: "r",
56 Subject: &SubjectSet{
57 Namespace: nspace,
58 Object: uuid.Must(uuid.NewV4()),
59 Relation: "r",
60 },
61 },
62 {
63 Namespace: nspace,
64 Object: uuid.Must(uuid.NewV4()),
65 Relation: "r",
66 Subject: &SubjectID{ID: uuid.Must(uuid.NewV4())},
67 },
68 }
69
70 t.Run("case=write and get", func(t *testing.T) {
71 reset(t, m0, m1)
72
73 require.NoError(t, m0.WriteRelationTuples(ctx, rts...))
74
75 other, _, err := m1.GetRelationTuples(ctx, &RelationQuery{Namespace: &nspace})
76 require.NoError(t, err)
77 assert.Len(t, other, 0)
78
79 actual, _, err := m0.GetRelationTuples(ctx, &RelationQuery{Namespace: &nspace})
80 require.NoError(t, err)
81 assert.ElementsMatch(t, rts, actual)
82 })
83
84 t.Run("case=delete", func(t *testing.T) {
85 reset(t, m0, m1)
86
87 require.NoError(t, m1.WriteRelationTuples(ctx, rts...))
88
89 require.NoError(t, m0.DeleteRelationTuples(ctx, rts...))
90
91 deleted, _, err := m0.GetRelationTuples(ctx, &RelationQuery{Namespace: &nspace})
92 require.NoError(t, err)
93 assert.Len(t, deleted, 0)
94
95 actual, _, err := m1.GetRelationTuples(ctx, &RelationQuery{Namespace: &nspace})
96 require.NoError(t, err)
97 assert.ElementsMatch(t, rts, actual)
98 })
99
100 t.Run("case=transact", func(t *testing.T) {
101 reset(t, m0, m1)

Callers 1

TestPersisterFunction · 0.92

Calls 8

twiceFunction · 0.85
resetFunction · 0.85
WriteRelationTuplesMethod · 0.65
GetRelationTuplesMethod · 0.65
LenMethod · 0.65
DeleteRelationTuplesMethod · 0.65
NameMethod · 0.45

Tested by 1

TestPersisterFunction · 0.74