Created
April 5, 2012 14:42
-
-
Save segilbert/2311557 to your computer and use it in GitHub Desktop.
IdeaStrike Test Project Nancy Autofac Bootstrapper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
using System; | |
using System.Collections.ObjectModel; | |
using System.Linq; | |
using System.Linq.Expressions; | |
using System.Drawing; | |
using System.IO; | |
using System.Drawing.Imaging; | |
// | |
using Ideastrike; | |
using Ideastrike.Nancy.Infrastructure.Logging; | |
using Ideastrike.Nancy.Infrastructure.Repositories; | |
using Ideastrike.Nancy.Models; | |
using Ideastrike.Nancy.Modules; | |
// | |
using Moq; | |
// | |
using Nancy; | |
using Nancy.Testing; | |
namespace IdeaStrike.Tests | |
{ | |
public class IdeaStrikeSpecBase<TModule> where TModule : BaseModule | |
{ | |
protected ConfigurableBootstrapper Bootstrapper; | |
protected Browser Browser; | |
protected BrowserResponse Response; | |
protected Mock<ILogger> _Logger = new Mock<ILogger>(); | |
protected Mock<IUserRepository> _Users = new Mock<IUserRepository>(); | |
protected Mock<IIdeaRepository> _Ideas = new Mock<IIdeaRepository>(); | |
protected Mock<IFeatureRepository> _Features = new Mock<IFeatureRepository>(); | |
protected Mock<IActivityRepository> _Activity = new Mock<IActivityRepository>(); | |
protected Mock<ISettingsRepository> _Settings = new Mock<ISettingsRepository>(); | |
//protected Mock<IdeastrikeContext> _Context = new Mock<IdeastrikeContext>(); | |
protected Mock<IImageRepository> _Images = new Mock<IImageRepository>(); | |
public IdeaStrikeSpecBase() | |
{ | |
Bootstrapper = new ConfigurableBootstrapper(with => | |
{ | |
with.Module<TModule>(); | |
with.Dependencies(_Logger.Object, _Users.Object, _Ideas.Object, _Features.Object, _Activity.Object, _Settings.Object, _Images.Object); | |
with.DisableAutoRegistration(); | |
with.NancyEngine<NancyEngine>(); | |
}); | |
} | |
protected User CreateMockUser(string username) | |
{ | |
var user = new User { | |
Id = Guid.NewGuid(), | |
UserName = username, | |
UserClaims = new Collection<UserClaim> {new UserClaim {Claim = new Claim {Name = "admin"}} } | |
}; | |
_Users.Setup(d => d.Get(user.Id)).Returns(user); | |
_Users.Setup(d => d.GetUserFromIdentifier(user.Id)).Returns(user); | |
_Users.Setup(d => d.FindBy(It.IsAny<Expression<Func<User, bool>>>())).Returns(new[] { user }.AsQueryable()); | |
return user; | |
} | |
protected void EnableFormsAuth() | |
{ | |
FormsAuthentication.Enable(Bootstrapper, new FormsAuthenticationConfiguration | |
{ | |
RedirectUrl = "~/login", | |
UserMapper = _Users.Object | |
}); | |
} | |
protected byte[] CreateImageBits() | |
{ | |
Bitmap img = new Bitmap(10, 10); | |
Graphics imgData = Graphics.FromImage(img); | |
imgData.DrawLine(new Pen(Color.Blue), 0, 0, 10, 10); | |
byte[] imageBits = null; | |
using (MemoryStream memoryStream = new MemoryStream()) | |
{ | |
img.Save(memoryStream, ImageFormat.Bmp); | |
imageBits = memoryStream.ToArray(); | |
} | |
return imageBits; | |
} | |
protected void Get(string path, Action<BrowserContext> browserContext = null) | |
{ | |
Browser = new Browser(Bootstrapper); | |
Response = Browser.Get(path, browserContext); | |
} | |
protected void Post(string path, Action<BrowserContext> browserContext = null) | |
{ | |
Browser = new Browser(Bootstrapper); | |
Response = Browser.Post(path, browserContext); | |
} | |
protected void Put(string path, Action<BrowserContext> browserContext = null) | |
{ | |
Browser = new Browser(Bootstrapper); | |
Response = Browser.Put(path, browserContext); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment