Skip to content

Instantly share code, notes, and snippets.

@eamonnmcevoy
eamonnmcevoy / session.go
Created March 14, 2017 12:23
DropDatabase
func(s *Session) DropDatabase(db string) error {
if(s.session != nil) {
return s.session.DB(db).DropDatabase()
}
return nil
}
defer func() {
session.DropDatabase(dbName)
session.Close()
}()
@eamonnmcevoy
eamonnmcevoy / ReportGenerator.cs
Created March 29, 2017 07:33
Example of un-testable class
using System.Text;
using System;
namespace BigLegacyApplication
{
internal class ReportGenerator
{
public ReportGenerator()
{
}
internal interface IUserService
{
User GetUser(int userId);
}
internal interface IResultService
{
string[] GetUserResults(int userId);
}
private readonly IUserService _userService;
public IUserService userService {
get {
if(_userService == null)
_userService = new UserService();
return _userService;
}
set { _userService = value; }
}
var mockUserService = new MockUserService();
var mockResultService = new MockResultService();
var resultGenerator = new ResultGenerator();
resultGenerator.userService = mockUserService;
resultGenerator.mockResultService = mockResultService;
using System.Text;
using System;
namespace BigLegacyApplication
{
internal class ReportGenerator
{
public ReportGenerator(){}
internal string GetUserReport(int userId)
public class TesableResultGenerator : ResultGenerator
{
private IUserService _userService;
private IResultService _resultService;
private DateTime _dateTime;
public TestableResultGenerator(IUserService userService, IResultService resultService, DateTime dateTime)
: base() {
_userService = userService;
_resultService = resultService;
var mockUserService = new MockUserService();
var mockResultService = new MockResultService();
var testTime = new DateTime(1,1,2000);
var resultGenerator = new ResultGenerator(mockUserService, mockResultService, testTime);
@eamonnmcevoy
eamonnmcevoy / hash.go
Created April 15, 2017 05:49
root.Hash interface
package root
type Hash interface {
Generate(s string) (string, error)
Compare(hash string, s string) error
}