|
5 | 5 | package parallelisation
|
6 | 6 |
|
7 | 7 | import (
|
| 8 | + "context" |
8 | 9 | "testing"
|
9 | 10 |
|
10 | 11 | "github.com/stretchr/testify/assert"
|
| 12 | + |
| 13 | + "github.com/ARM-software/golang-utils/utils/commonerrors" |
| 14 | + "github.com/ARM-software/golang-utils/utils/commonerrors/errortest" |
11 | 15 | )
|
12 | 16 |
|
13 | 17 | // Given a CancelFunctionsStore
|
14 | 18 | // Functions can be registered
|
15 | 19 | // and all functions will be called
|
16 | 20 | func TestCancelFunctionStore(t *testing.T) {
|
17 |
| - // Set up some fake CancelFuncs to make sure they are called |
18 |
| - called1 := false |
19 |
| - called2 := false |
20 |
| - cancelFunc1 := func() { |
21 |
| - called1 = true |
22 |
| - } |
23 |
| - cancelFunc2 := func() { |
24 |
| - called2 = true |
25 |
| - } |
| 21 | + t.Run("valid cancel store", func(t *testing.T) { |
| 22 | + // Set up some fake CancelFuncs to make sure they are called |
| 23 | + called1 := false |
| 24 | + called2 := false |
| 25 | + cancelFunc1 := func() { |
| 26 | + called1 = true |
| 27 | + } |
| 28 | + cancelFunc2 := func() { |
| 29 | + called2 = true |
| 30 | + } |
| 31 | + |
| 32 | + store := NewCancelFunctionsStore() |
| 33 | + |
| 34 | + store.RegisterCancelFunction(cancelFunc1, cancelFunc2) |
| 35 | + |
| 36 | + assert.Equal(t, 2, store.Len()) |
| 37 | + |
| 38 | + store.Cancel() |
| 39 | + |
| 40 | + assert.True(t, called1) |
| 41 | + assert.True(t, called2) |
| 42 | + }) |
| 43 | + |
| 44 | + t.Run("incorrectly initialised cancel store", func(t *testing.T) { |
| 45 | + called1 := false |
| 46 | + called2 := false |
| 47 | + cancelFunc1 := func() { |
| 48 | + called1 = true |
| 49 | + } |
| 50 | + cancelFunc2 := func() { |
| 51 | + called2 = true |
| 52 | + } |
26 | 53 |
|
27 |
| - store := NewCancelFunctionsStore() |
| 54 | + store := CancelFunctionStore{} |
28 | 55 |
|
29 |
| - store.RegisterCancelFunction(cancelFunc1, cancelFunc2) |
| 56 | + store.RegisterCancelFunction(cancelFunc1, cancelFunc2) |
30 | 57 |
|
31 |
| - assert.Equal(t, 2, store.Len()) |
| 58 | + assert.Equal(t, 2, store.Len()) |
32 | 59 |
|
33 |
| - store.Cancel() |
| 60 | + err := store.Execute(context.Background()) |
| 61 | + errortest.AssertError(t, err, commonerrors.ErrUndefined) |
34 | 62 |
|
35 |
| - assert.True(t, called1) |
36 |
| - assert.True(t, called2) |
| 63 | + assert.False(t, called1) |
| 64 | + assert.False(t, called2) |
| 65 | + }) |
37 | 66 | }
|
0 commit comments