I have an abstract class NetworkTest and some derived classes PingTest, SMTPTest, and POP3Test. Each Test class overrides a Run() function and has it's own private member variables.
I have a txt file for each type of test - ping.txt, pop3.txt, smtp.txt that defines the tests that should be run, in the format
IP IP ...
server:port:usr:pw:email_address server:port:usr:pw:email_address ...
server:port server:port ...
I have a ReadTestsFromFile() for each type of test. However, since these return a List(of TypeOfTest), they cannot be member functions of the derived classes. So the question is, where do I put ReadPingTestsFromFile(), ReadPop3TestsFromFile() and ReadSMTPTestsFromFile() ? I currently just have them in a module, but that seems a little less "principled" than the nice OOP structure I've been trying to follow with the rest of this program.
Can anyone comment on how you would do this?