database

package
v0.0.0-...-be5ebc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2022 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectorFunc

type ConnectorFunc func() (*gorm.DB, zerolog.Logger, error)

ConnectorFunc is used to inject a database connection method into NewDatabaseConnection

func NewPostgreSQLConnector

func NewPostgreSQLConnector(log zerolog.Logger) ConnectorFunc

NewPostgreSQLConnector opens a connection to a postgresql database

func NewSQLiteConnector

func NewSQLiteConnector(log zerolog.Logger) ConnectorFunc

NewSQLiteConnector opens a connection to a local sqlite database

type Datastore

type Datastore interface {
	GetAirQualityObserveds(deviceId string, from, to time.Time, limit uint64) ([]models.AirQualityObserved, error)
	StoreAirQualityObserved(entityId, deviceId string, co2, humidity, temperature float64, timestamp time.Time) (*models.AirQualityObserved, error)
}

func NewDatabaseConnection

func NewDatabaseConnection(connect ConnectorFunc) (Datastore, error)

NewDatabaseConnection initializes a new connection to the database and wraps it in a Datastore

type DatastoreMock

type DatastoreMock struct {
	// GetAirQualityObservedsFunc mocks the GetAirQualityObserveds method.
	GetAirQualityObservedsFunc func(deviceId string, from time.Time, to time.Time, limit uint64) ([]models.AirQualityObserved, error)

	// StoreAirQualityObservedFunc mocks the StoreAirQualityObserved method.
	StoreAirQualityObservedFunc func(entityId string, deviceId string, co2 float64, humidity float64, temperature float64, timestamp time.Time) (*models.AirQualityObserved, error)
	// contains filtered or unexported fields
}

DatastoreMock is a mock implementation of Datastore.

func TestSomethingThatUsesDatastore(t *testing.T) {

	// make and configure a mocked Datastore
	mockedDatastore := &DatastoreMock{
		GetAirQualityObservedsFunc: func(deviceId string, from time.Time, to time.Time, limit uint64) ([]models.AirQualityObserved, error) {
			panic("mock out the GetAirQualityObserveds method")
		},
		StoreAirQualityObservedFunc: func(entityId string, deviceId string, co2 float64, humidity float64, temperature float64, timestamp time.Time) (*models.AirQualityObserved, error) {
			panic("mock out the StoreAirQualityObserved method")
		},
	}

	// use mockedDatastore in code that requires Datastore
	// and then make assertions.

}

func (*DatastoreMock) GetAirQualityObserveds

func (mock *DatastoreMock) GetAirQualityObserveds(deviceId string, from time.Time, to time.Time, limit uint64) ([]models.AirQualityObserved, error)

GetAirQualityObserveds calls GetAirQualityObservedsFunc.

func (*DatastoreMock) GetAirQualityObservedsCalls

func (mock *DatastoreMock) GetAirQualityObservedsCalls() []struct {
	DeviceId string
	From     time.Time
	To       time.Time
	Limit    uint64
}

GetAirQualityObservedsCalls gets all the calls that were made to GetAirQualityObserveds. Check the length with:

len(mockedDatastore.GetAirQualityObservedsCalls())

func (*DatastoreMock) StoreAirQualityObserved

func (mock *DatastoreMock) StoreAirQualityObserved(entityId string, deviceId string, co2 float64, humidity float64, temperature float64, timestamp time.Time) (*models.AirQualityObserved, error)

StoreAirQualityObserved calls StoreAirQualityObservedFunc.

func (*DatastoreMock) StoreAirQualityObservedCalls

func (mock *DatastoreMock) StoreAirQualityObservedCalls() []struct {
	EntityId    string
	DeviceId    string
	Co2         float64
	Humidity    float64
	Temperature float64
	Timestamp   time.Time
}

StoreAirQualityObservedCalls gets all the calls that were made to StoreAirQualityObserved. Check the length with:

len(mockedDatastore.StoreAirQualityObservedCalls())

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL