Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Q quickfix
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 48
    • Issues 48
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 25
    • Merge requests 25
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • quickfixgo
  • quickfix
  • Merge requests
  • !96

Accept `Settings` instead of `SessionSettings`

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/mgatny/sqlstore into master 9 years ago
  • Overview 1
  • Commits 1
  • Pipelines 0
  • Changes 4

Created by: mgatny

fileStore and sqlStore previously accepted SessionSettings as config args - accepting Settings is more appropriate

Compare
  • master (base)

and
  • latest version
    daf4180d
    1 commit, 2 years ago

4 files
+ 48
- 17

    Preferences

    File browser
    Compare changes
filest‎ore.go‎ +7 -3
filestor‎e_test.go‎ +17 -5
sqlst‎ore.go‎ +9 -4
sqlstore‎_test.go‎ +15 -5
filestore.go
+ 7
- 3
  • View file @ daf4180d

  • Edit in single-file editor

  • Open in Web IDE


@@ -17,7 +17,7 @@ type msgDef struct {
}
type fileStoreFactory struct {
settings *SessionSettings
settings *Settings
}
type fileStore struct {
@@ -37,13 +37,17 @@ type fileStore struct {
}
// NewFileStoreFactory returns a file-based implementation of MessageStoreFactory
func NewFileStoreFactory(settings *SessionSettings) MessageStoreFactory {
func NewFileStoreFactory(settings *Settings) MessageStoreFactory {
return fileStoreFactory{settings: settings}
}
// Create creates a new FileStore implementation of the MessageStore interface
func (f fileStoreFactory) Create(sessionID SessionID) (msgStore MessageStore, err error) {
dirname, err := f.settings.Setting(config.FileStorePath)
sessionSettings, ok := f.settings.SessionSettings()[sessionID]
if !ok {
return nil, fmt.Errorf("unknown session: %v", sessionID)
}
dirname, err := sessionSettings.Setting(config.FileStorePath)
if err != nil {
return nil, err
}
filestore_test.go
+ 17
- 5
  • View file @ daf4180d

  • Edit in single-file editor

  • Open in Web IDE


@@ -4,10 +4,10 @@ import (
"fmt"
"os"
"path"
"strings"
"testing"
"time"
"github.com/quickfixgo/quickfix/config"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)
@@ -19,11 +19,23 @@ type FileStoreTestSuite struct {
}
func (suite *FileStoreTestSuite) SetupTest() {
var err error
settings := NewSessionSettings()
suite.fileStoreRootPath = path.Join(os.TempDir(), fmt.Sprintf("FileStoreTestSuite-%d", os.Getpid()))
settings.Set(config.FileStorePath, path.Join(suite.fileStoreRootPath, fmt.Sprintf("%d", time.Now().UnixNano())))
suite.msgStore, err = NewFileStoreFactory(settings).Create(SessionID{BeginString: "FIX.4.4", SenderCompID: "SENDER", TargetCompID: "TARGET"})
fileStorePath := path.Join(suite.fileStoreRootPath, fmt.Sprintf("%d", time.Now().UnixNano()))
sessionID := SessionID{BeginString: "FIX.4.4", SenderCompID: "SENDER", TargetCompID: "TARGET"}
// create settings
settings, err := ParseSettings(strings.NewReader(fmt.Sprintf(`
[DEFAULT]
FileStorePath=%s
[SESSION]
BeginString=%s
SenderCompID=%s
TargetCompID=%s`, fileStorePath, sessionID.BeginString, sessionID.SenderCompID, sessionID.TargetCompID)))
require.Nil(suite.T(), err)
// create store
suite.msgStore, err = NewFileStoreFactory(settings).Create(sessionID)
require.Nil(suite.T(), err)
}
sqlstore.go
+ 9
- 4
  • View file @ daf4180d

  • Edit in single-file editor

  • Open in Web IDE


@@ -2,13 +2,14 @@ package quickfix
import (
"database/sql"
"fmt"
"time"
"github.com/quickfixgo/quickfix/config"
)
type sqlStoreFactory struct {
settings *SessionSettings
settings *Settings
}
type sqlStore struct {
@@ -20,17 +21,21 @@ type sqlStore struct {
}
// NewSQLStoreFactory returns a sql-based implementation of MessageStoreFactory
func NewSQLStoreFactory(settings *SessionSettings) MessageStoreFactory {
func NewSQLStoreFactory(settings *Settings) MessageStoreFactory {
return sqlStoreFactory{settings: settings}
}
// Create creates a new SQLStore implementation of the MessageStore interface
func (f sqlStoreFactory) Create(sessionID SessionID) (msgStore MessageStore, err error) {
sqlDriver, err := f.settings.Setting(config.SQLDriver)
sessionSettings, ok := f.settings.SessionSettings()[sessionID]
if !ok {
return nil, fmt.Errorf("unknown session: %v", sessionID)
}
sqlDriver, err := sessionSettings.Setting(config.SQLDriver)
if err != nil {
return nil, err
}
sqlDataSourceName, err := f.settings.Setting(config.SQLDataSourceName)
sqlDataSourceName, err := sessionSettings.Setting(config.SQLDataSourceName)
if err != nil {
return nil, err
}
sqlstore_test.go
+ 15
- 5
  • View file @ daf4180d

  • Edit in single-file editor

  • Open in Web IDE


@@ -7,11 +7,11 @@ import (
"os"
"path"
"path/filepath"
"strings"
"testing"
"time"
_ "github.com/mattn/go-sqlite3"
"github.com/quickfixgo/quickfix/config"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
)
@@ -41,11 +41,21 @@ func (suite *SQLStoreTestSuite) SetupTest() {
require.Nil(suite.T(), err)
}
// create settings
sessionID := SessionID{BeginString: "FIX.4.4", SenderCompID: "SENDER", TargetCompID: "TARGET"}
settings, err := ParseSettings(strings.NewReader(fmt.Sprintf(`
[DEFAULT]
SQLDriver=%s
SQLDataSourceName=%s
[SESSION]
BeginString=%s
SenderCompID=%s
TargetCompID=%s`, sqlDriver, sqlDsn, sessionID.BeginString, sessionID.SenderCompID, sessionID.TargetCompID)))
require.Nil(suite.T(), err)
// create store
settings := NewSessionSettings()
settings.Set(config.SQLDataSourceName, sqlDsn)
settings.Set(config.SQLDriver, sqlDriver)
suite.msgStore, err = NewSQLStoreFactory(settings).Create(SessionID{BeginString: "FIX.4.4", SenderCompID: "SENDER", TargetCompID: "TARGET"})
suite.msgStore, err = NewSQLStoreFactory(settings).Create(sessionID)
require.Nil(suite.T(), err)
}
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
1
CLA Signed
1
CLA Signed
    Assign labels
  • Manage project labels

Milestone
No milestone
None
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
0
0 participants
Reference: facebook/create-react-app!10930
Source branch: github/fork/mgatny/sqlstore

Menu

Explore Projects Groups Snippets