Skip to content

Instantly share code, notes, and snippets.

@MattHoneycutt
Created August 22, 2011 02:14
Show Gist options
  • Save MattHoneycutt/1161514 to your computer and use it in GitHub Desktop.
Save MattHoneycutt/1161514 to your computer and use it in GitHub Desktop.
public abstract class SpecsForWithData<T> : SpecsFor<T> where T : class
{
protected User TestUser;
protected User CreatorUser;
protected Issue TestIssue;
protected Project TestProject;
protected override void Given()
{
CreateUsers();
CreateProject();
CreateIssues();
}
private void CreateProject()
{
TestProject = Project.Create("Test", CreatorUser);
TestProject.ID = Guid.NewGuid();
GetMockFor<IRepository<Project>>()
.Setup(r => r.Query())
.Returns((new[] { Project.Create("Blah!", CreatorUser), TestProject }).AsQueryable());
}
private void CreateIssues()
{
TestIssue = Issue.CreateNewIssue(TestProject, "Test Issue", CreatorUser, "This is a test");
TestIssue.ReassignTo(TestUser);
TestIssue.ID = Guid.NewGuid();
GetMockFor<IRepository<Issue>>()
.Setup(r => r.Query())
.Returns((new[] { TestIssue }).AsQueryable());
}
private void CreateUsers()
{
TestUser = User.CreateNewUser("test@user.com", "blah");
TestUser.ID = Guid.NewGuid();
CreatorUser = User.CreateNewUser("some@user.com", "blah");
CreatorUser.ID = Guid.NewGuid();
GetMockFor<IRepository<User>>()
.Setup(s => s.Query())
.Returns((new[] { CreatorUser, TestUser }).AsQueryable());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment