go-transaction-manager

Форк
0
78 строк · 1.8 Кб
1
package sql
2

3
import (
4
	"database/sql"
5
	"testing"
6

7
	"github.com/stretchr/testify/assert"
8

9
	"github.com/avito-tech/go-transaction-manager/trm/v2"
10
	"github.com/avito-tech/go-transaction-manager/trm/v2/settings"
11
)
12

13
func TestSettings_EnrichBy(t *testing.T) {
14
	t.Parallel()
15

16
	type args struct {
17
		external trm.Settings
18
	}
19

20
	tests := map[string]struct {
21
		settings Settings
22
		args     args
23
		want     trm.Settings
24
	}{
25
		"update_default": {
26
			settings: MustSettings(settings.Must()),
27
			args: args{
28
				external: MustSettings(
29
					settings.Must(settings.WithCancelable(true)),
30
					WithTxOptions(&sql.TxOptions{}),
31
				),
32
			},
33
			want: MustSettings(
34
				settings.Must(settings.WithCancelable(true)),
35
				WithTxOptions(&sql.TxOptions{}),
36
			),
37
		},
38
		"without_update": {
39
			settings: MustSettings(
40
				settings.Must(settings.WithCancelable(true)),
41
				WithTxOptions(&sql.TxOptions{Isolation: sql.LevelWriteCommitted}),
42
			),
43
			args: args{
44
				external: MustSettings(
45
					settings.Must(settings.WithCancelable(false)),
46
					WithTxOptions(&sql.TxOptions{ReadOnly: true}),
47
				),
48
			},
49
			want: MustSettings(
50
				settings.Must(settings.WithCancelable(true)),
51
				WithTxOptions(&sql.TxOptions{Isolation: sql.LevelWriteCommitted}),
52
			),
53
		},
54
		"update_only_trm.Settings": {
55
			settings: MustSettings(
56
				settings.Must(),
57
				WithTxOptions(&sql.TxOptions{Isolation: sql.LevelWriteCommitted}),
58
			),
59
			args: args{
60
				external: settings.Must(settings.WithCancelable(true)),
61
			},
62
			want: MustSettings(
63
				settings.Must(settings.WithCancelable(true)),
64
				WithTxOptions(&sql.TxOptions{Isolation: sql.LevelWriteCommitted}),
65
			),
66
		},
67
	}
68
	for name, tt := range tests {
69
		tt := tt
70
		t.Run(name, func(t *testing.T) {
71
			t.Parallel()
72

73
			got := tt.settings.EnrichBy(tt.args.external)
74

75
			assert.Equal(t, tt.want, got)
76
		})
77
	}
78
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.