• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence / 018e1aca-4829-4e25-951b-23cb08010d99

07 Mar 2024 09:20PM UTC coverage: 63.21% (-0.7%) from 63.932%
018e1aca-4829-4e25-951b-23cb08010d99

push

buildkite

web-flow
Add unit tests for common/persistence/sql/factory.go (#5751)

92665 of 146599 relevant lines covered (63.21%)

2349.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

53.85
/common/persistence/sql/sql_config_store.go
1
// The MIT License (MIT)
2

3
// Copyright (c) 2017-2020 Uber Technologies Inc.
4

5
// Permission is hereby granted, free of charge, to any person obtaining a copy
6
// of this software and associated documentation files (the "Software"), to deal
7
// in the Software without restriction, including without limitation the rights
8
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the Software is
10
// furnished to do so, subject to the following conditions:
11
//
12
// The above copyright notice and this permission notice shall be included in all
13
// copies or substantial portions of the Software.
14
//
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
// SOFTWARE.
22

23
package sql
24

25
import (
26
        "context"
27
        "fmt"
28

29
        "github.com/uber/cadence/common/log"
30
        "github.com/uber/cadence/common/persistence"
31
        "github.com/uber/cadence/common/persistence/serialization"
32
        "github.com/uber/cadence/common/persistence/sql/sqlplugin"
33
)
34

35
type (
36
        sqlConfigStore struct {
37
                sqlStore
38
        }
39
)
40

41
// NewSQLConfigStore creates a config store for SQL
42
func NewSQLConfigStore(
43
        db sqlplugin.DB,
44
        logger log.Logger,
45
        parser serialization.Parser,
46
) (persistence.ConfigStore, error) {
58✔
47
        return &sqlConfigStore{
58✔
48
                sqlStore: sqlStore{
58✔
49
                        db:     db,
58✔
50
                        logger: logger,
58✔
51
                        parser: parser,
58✔
52
                },
58✔
53
        }, nil
58✔
54
}
58✔
55

56
func (m *sqlConfigStore) FetchConfig(ctx context.Context, configType persistence.ConfigType) (*persistence.InternalConfigStoreEntry, error) {
254✔
57
        entry, err := m.db.SelectLatestConfig(ctx, int(configType))
254✔
58
        if m.db.IsNotFoundError(err) {
508✔
59
                return nil, nil
254✔
60
        }
254✔
61
        if err != nil {
×
62
                return nil, convertCommonErrors(m.db, "FetchConfig", "", err)
×
63
        }
×
64
        return entry, nil
×
65
}
66

67
func (m *sqlConfigStore) UpdateConfig(ctx context.Context, value *persistence.InternalConfigStoreEntry) error {
×
68
        err := m.db.InsertConfig(ctx, value)
×
69
        if err != nil {
×
70
                if m.db.IsDupEntryError(err) {
×
71
                        return &persistence.ConditionFailedError{Msg: fmt.Sprintf("Version %v already exists. Condition Failed", value.Version)}
×
72
                }
×
73
                return convertCommonErrors(m.db, "UpdateConfig", "", err)
×
74
        }
75
        return nil
×
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc