Module database_interface_feed_trait

Source
Expand description

Trait and implementation for database interface of Feed allowing mocking Defines the database interaction contract for the feed module.

This module is central to decoupling the application’s feeding logic from the underlying database implementation. It achieves this by defining the DatabaseInterfaceFeedTrait, which specifies all the database operations that the feed module requires.

§Key Components

  • DatabaseInterfaceFeedTrait: An abstraction layer that defines a set of methods for querying and modifying feed-related data, such as feed schedules and historical feed events. By depending on this trait instead of a concrete database struct, the feed module can be tested in isolation using mock implementations.

  • impl DatabaseInterfaceFeedTrait for SqlInterfaceFeed: The production implementation of the trait. This block contains the actual SQL queries and logic required to interact with an SQL database, translating the high-level trait methods into concrete database operations.

§Design and Purpose

The primary goal of this module is to enable testability and modularity. The feed thread’s logic is complex, and testing it against a live database is slow, brittle, and requires significant setup. By using a trait object, we can inject a mock database during testing.

Constants§

NUM_FEEDPHASES

Traits§

DatabaseInterfaceFeedTrait
Trait for interfacing between feed and SQL database This trait is prerequisite to use mock implementation for testing