Tutorial: Repository pattern in Golang with Test Driven Development