Privatise DB repository field and add transformer test

This commit is contained in:
Edvard
2018-10-23 10:47:01 +02:00
parent cb74cbe990
commit 7ee3329baf
37 changed files with 182 additions and 138 deletions
@@ -21,11 +21,11 @@ import (
)
type PitFileDebtCeilingRepository struct {
DB *postgres.DB
db *postgres.DB
}
func (repository PitFileDebtCeilingRepository) Create(headerID int64, models []interface{}) error {
tx, err := repository.DB.Begin()
tx, err := repository.db.Begin()
if err != nil {
return err
}
@@ -63,7 +63,7 @@ func (repository PitFileDebtCeilingRepository) Create(headerID int64, models []i
}
func (repository PitFileDebtCeilingRepository) MarkHeaderChecked(headerID int64) error {
_, err := repository.DB.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_debt_ceiling_checked)
_, err := repository.db.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_debt_ceiling_checked)
VALUES ($1, $2)
ON CONFLICT (header_id) DO
UPDATE SET pit_file_debt_ceiling_checked = $2`, headerID, true)
@@ -72,7 +72,7 @@ func (repository PitFileDebtCeilingRepository) MarkHeaderChecked(headerID int64)
func (repository PitFileDebtCeilingRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
var result []core.Header
err := repository.DB.Select(
err := repository.db.Select(
&result,
`SELECT headers.id, headers.block_number FROM headers
LEFT JOIN checked_headers on headers.id = header_id
@@ -82,11 +82,11 @@ func (repository PitFileDebtCeilingRepository) MissingHeaders(startingBlockNumbe
AND headers.eth_node_fingerprint = $3`,
startingBlockNumber,
endingBlockNumber,
repository.DB.Node.ID,
repository.db.Node.ID,
)
return result, err
}
func (repository *PitFileDebtCeilingRepository) SetDB(db *postgres.DB) {
repository.DB = db
repository.db = db
}
@@ -42,7 +42,8 @@ var _ = Describe("Pit file debt ceiling repository", func() {
db = test_config.NewTestDB(core.Node{})
test_config.CleanTestDB(db)
headerRepository = repositories.NewHeaderRepository(db)
pitFileDebtCeilingRepository = debt_ceiling.PitFileDebtCeilingRepository{DB: db}
pitFileDebtCeilingRepository = debt_ceiling.PitFileDebtCeilingRepository{}
pitFileDebtCeilingRepository.SetDB(db)
})
Describe("Create", func() {
@@ -182,16 +183,16 @@ var _ = Describe("Pit file debt ceiling repository", func() {
_, err = headerRepositoryTwo.CreateOrUpdateHeader(fakes.GetFakeHeader(n))
Expect(err).NotTo(HaveOccurred())
}
pitFileRepository := debt_ceiling.PitFileDebtCeilingRepository{DB: db}
pitFileRepositoryTwo := debt_ceiling.PitFileDebtCeilingRepository{DB: dbTwo}
err := pitFileRepository.MarkHeaderChecked(headerIDs[0])
pitFileDebtCeilingRepositoryTwo := debt_ceiling.PitFileDebtCeilingRepository{}
pitFileDebtCeilingRepositoryTwo.SetDB(dbTwo)
err := pitFileDebtCeilingRepository.MarkHeaderChecked(headerIDs[0])
Expect(err).NotTo(HaveOccurred())
nodeOneMissingHeaders, err := pitFileRepository.MissingHeaders(blockNumbers[0], blockNumbers[len(blockNumbers)-1])
nodeOneMissingHeaders, err := pitFileDebtCeilingRepository.MissingHeaders(blockNumbers[0], blockNumbers[len(blockNumbers)-1])
Expect(err).NotTo(HaveOccurred())
Expect(len(nodeOneMissingHeaders)).To(Equal(len(blockNumbers) - 1))
nodeTwoMissingHeaders, err := pitFileRepositoryTwo.MissingHeaders(blockNumbers[0], blockNumbers[len(blockNumbers)-1])
nodeTwoMissingHeaders, err := pitFileDebtCeilingRepositoryTwo.MissingHeaders(blockNumbers[0], blockNumbers[len(blockNumbers)-1])
Expect(err).NotTo(HaveOccurred())
Expect(len(nodeTwoMissingHeaders)).To(Equal(len(blockNumbers)))
})
@@ -52,7 +52,12 @@ var _ = Describe("Pit file debt ceiling transformer", func() {
Fetcher: &fetcher,
Converter: &converter,
Repository: &repository,
}
}.NewTransformer(nil, nil)
})
It("sets the blockchain and database", func() {
Expect(fetcher.SetBcCalled).To(BeTrue())
Expect(repository.SetDbCalled).To(BeTrue())
})
It("gets missing headers for block numbers specified in config", func() {
+6 -6
View File
@@ -21,11 +21,11 @@ import (
)
type PitFileIlkRepository struct {
DB *postgres.DB
db *postgres.DB
}
func (repository PitFileIlkRepository) Create(headerID int64, models []interface{}) error {
tx, err := repository.DB.Begin()
tx, err := repository.db.Begin()
if err != nil {
return err
}
@@ -59,7 +59,7 @@ func (repository PitFileIlkRepository) Create(headerID int64, models []interface
}
func (repository PitFileIlkRepository) MarkHeaderChecked(headerID int64) error {
_, err := repository.DB.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_ilk_checked)
_, err := repository.db.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_ilk_checked)
VALUES ($1, $2)
ON CONFLICT (header_id) DO
UPDATE SET pit_file_ilk_checked = $2`, headerID, true)
@@ -68,7 +68,7 @@ func (repository PitFileIlkRepository) MarkHeaderChecked(headerID int64) error {
func (repository PitFileIlkRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
var result []core.Header
err := repository.DB.Select(
err := repository.db.Select(
&result,
`SELECT headers.id, headers.block_number FROM headers
LEFT JOIN checked_headers on headers.id = header_id
@@ -78,11 +78,11 @@ func (repository PitFileIlkRepository) MissingHeaders(startingBlockNumber, endin
AND headers.eth_node_fingerprint = $3`,
startingBlockNumber,
endingBlockNumber,
repository.DB.Node.ID,
repository.db.Node.ID,
)
return result, err
}
func (repository *PitFileIlkRepository) SetDB(db *postgres.DB) {
repository.DB = db
repository.db = db
}
@@ -42,7 +42,8 @@ var _ = Describe("Pit file ilk repository", func() {
db = test_config.NewTestDB(core.Node{})
test_config.CleanTestDB(db)
headerRepository = repositories.NewHeaderRepository(db)
pitFileRepository = ilk.PitFileIlkRepository{DB: db}
pitFileRepository = ilk.PitFileIlkRepository{}
pitFileRepository.SetDB(db)
})
Describe("Create", func() {
@@ -183,7 +184,8 @@ var _ = Describe("Pit file ilk repository", func() {
Expect(err).NotTo(HaveOccurred())
}
pitFileRepositoryTwo := ilk.PitFileIlkRepository{DB: dbTwo}
pitFileRepositoryTwo := ilk.PitFileIlkRepository{}
pitFileRepositoryTwo.SetDB(dbTwo)
err := pitFileRepository.MarkHeaderChecked(headerIDs[0])
Expect(err).NotTo(HaveOccurred())
@@ -55,6 +55,11 @@ var _ = Describe("Pit file ilk transformer", func() {
}.NewTransformer(nil, nil)
})
It("sets the blockchain and database", func() {
Expect(fetcher.SetBcCalled).To(BeTrue())
Expect(repository.SetDbCalled).To(BeTrue())
})
It("gets missing headers for block numbers specified in config", func() {
err := transformer.Execute()
@@ -21,11 +21,11 @@ import (
)
type PitFileStabilityFeeRepository struct {
DB *postgres.DB
db *postgres.DB
}
func (repository PitFileStabilityFeeRepository) Create(headerID int64, models []interface{}) error {
tx, err := repository.DB.Begin()
tx, err := repository.db.Begin()
if err != nil {
return err
}
@@ -63,7 +63,7 @@ func (repository PitFileStabilityFeeRepository) Create(headerID int64, models []
}
func (repository PitFileStabilityFeeRepository) MarkHeaderChecked(headerID int64) error {
_, err := repository.DB.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_stability_fee_checked)
_, err := repository.db.Exec(`INSERT INTO public.checked_headers (header_id, pit_file_stability_fee_checked)
VALUES ($1, $2)
ON CONFLICT (header_id) DO
UPDATE SET pit_file_stability_fee_checked = $2`, headerID, true)
@@ -72,7 +72,7 @@ func (repository PitFileStabilityFeeRepository) MarkHeaderChecked(headerID int64
func (repository PitFileStabilityFeeRepository) MissingHeaders(startingBlockNumber, endingBlockNumber int64) ([]core.Header, error) {
var result []core.Header
err := repository.DB.Select(
err := repository.db.Select(
&result,
`SELECT headers.id, headers.block_number FROM headers
LEFT JOIN checked_headers on headers.id = header_id
@@ -82,11 +82,11 @@ func (repository PitFileStabilityFeeRepository) MissingHeaders(startingBlockNumb
AND headers.eth_node_fingerprint = $3`,
startingBlockNumber,
endingBlockNumber,
repository.DB.Node.ID,
repository.db.Node.ID,
)
return result, err
}
func (repository *PitFileStabilityFeeRepository) SetDB(db *postgres.DB) {
repository.DB = db
repository.db = db
}
@@ -42,7 +42,8 @@ var _ = Describe("Pit file stability fee repository", func() {
db = test_config.NewTestDB(core.Node{})
test_config.CleanTestDB(db)
headerRepository = repositories.NewHeaderRepository(db)
pitFileStabilityFeeRepository = stability_fee.PitFileStabilityFeeRepository{DB: db}
pitFileStabilityFeeRepository = stability_fee.PitFileStabilityFeeRepository{}
pitFileStabilityFeeRepository.SetDB(db)
})
Describe("Create", func() {
@@ -182,7 +183,8 @@ var _ = Describe("Pit file stability fee repository", func() {
Expect(err).NotTo(HaveOccurred())
}
pitFileRepositoryTwo := stability_fee.PitFileStabilityFeeRepository{DB: dbTwo}
pitFileRepositoryTwo := stability_fee.PitFileStabilityFeeRepository{}
pitFileRepositoryTwo.SetDB(dbTwo)
err = pitFileStabilityFeeRepository.MarkHeaderChecked(headerIDs[0])
Expect(err).NotTo(HaveOccurred())
@@ -55,6 +55,11 @@ var _ = Describe("Pit file stability fee transformer", func() {
headerTwo = core.Header{Id: GinkgoRandomSeed(), BlockNumber: GinkgoRandomSeed()}
})
It("sets the blockchain and database", func() {
Expect(fetcher.SetBcCalled).To(BeTrue())
Expect(repository.SetDbCalled).To(BeTrue())
})
It("gets missing headers for block numbers specified in config", func() {
err := transformer.Execute()