summaryrefslogtreecommitdiffhomepage
path: root/storage/dummy_test.go
blob: b9959bf72568e742382ed49d0727c621f63ae0c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package storage

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestDummy(t *testing.T) {
	assert := assert.New(t)

	const (
		k = "key"
		v = "val"
	)

	var (
		// setup
		err  = Error("testing error")
		dumC = Dummy{collide: true, found: true, healthy: true, err: nil}
		dumE = Dummy{collide: false, found: true, healthy: true, err: err}
		dumF = Dummy{collide: false, found: false, healthy: true, err: nil}
		dumH = Dummy{collide: false, found: true, healthy: false, err: nil}
		dumN = Dummy{collide: false, found: true, healthy: true, err: nil}

		// ---- TESTS
		// Health
		hc = dumC.Healthy()
		he = dumE.Healthy()
		hf = dumF.Healthy()
		hh = dumH.Healthy()
		hn = dumN.Healthy()

		// Write - no collisions
		wc = dumC.Create(k, v, false)
		we = dumE.Create(k, v, false)
		wf = dumF.Create(k, v, false)
		wh = dumH.Create(k, v, false)
		wn = dumN.Create(k, v, false)

		// Write - collisions
		cc = dumC.Create(k, v, true)
		ce = dumE.Create(k, v, true)
		cf = dumF.Create(k, v, true)
		ch = dumH.Create(k, v, true)
		cn = dumN.Create(k, v, true)

		// Read
		rc, erc = dumC.Read(k)
		re, ere = dumE.Read(k)
		rf, erf = dumF.Read(k)
		rh, erh = dumH.Read(k)
		rn, ern = dumN.Read(k)
	)
	assert.Equal("testing error", err.Error())

	assert.True(hc)
	assert.True(he)
	assert.True(hf)
	assert.False(hh)
	assert.True(hn)

	assert.Nil(wc)
	assert.NotNil(we)
	assert.Nil(wf)
	assert.NotNil(wh)
	assert.Nil(wn)

	assert.Equal(err, we)
	assert.Equal(Unhealthy, wh)

	assert.NotNil(cc)
	assert.NotNil(ce)
	assert.Nil(cf)
	assert.NotNil(ch)
	assert.Nil(cn)

	assert.Equal(Collision, cc)
	assert.Equal(err, ce)
	assert.Equal(Unhealthy, ch)

	assert.Nil(erc)
	assert.Nil(ere)
	assert.NotNil(erf)
	assert.NotNil(erh)
	assert.Nil(ern)

	assert.Equal(Unhealthy, erh)
	assert.Equal(NotFound, erf)

	assert.Equal(k, rc)
	assert.Equal(k, re)
	assert.Equal(k, rf)
	assert.Equal(k, rh)
	assert.Equal(k, rn)
}