DevChatter / ChatterBot

Highly modular Twitch chat bot.
MIT License
10 stars 5 forks source link

#29 introduce interfaces dev #37

Closed SimonGeering closed 4 years ago

SimonGeering commented 4 years ago

Closes #29

The second part of this work will be to implement #31 so that the only reference anything needs are to interfaces and POCOs in Core and then they are handed a concrete implementation by DI.

However, this does have consideration in regard to the renaming conventions being used. I will add comments to #31 which will need clarification by @benrick before that can be implemented, as it requires either renaming the core project or breaking the unwritten rule that root namespaces match project names and folder structures.

For not though, this PR is a standalone improvement to encapsulation and can be merged in its own right.

SimonGeering commented 4 years ago

Agree on all points, I'll pull the interfaces out as part of the assembly restructuring discussed earlier today on the other issues.

As to the DB that's great to get it in memory. We will also need to look at something equivalent to the way a Dbcontext does seed data.

Maybe also looking at builders for objects commonly used in unit tests, that or we have either a base class or a static helper utility for setting up both test data and mocks.