public void CreateTest()
        {
            var controller = new WebFilesController();

            controller.Settings = new Settings();
            var context = CreateMockContext(controller, "Create");

            controller.db          = db;
            controller.RoleManager = CreateRoleManager();
            var mockUser = CreateMockUser("jethro", Roles.Administrators);

            db.CurrentUser = mockUser;
            context.HttpContext.Setup(r => r.User).Returns(mockUser); //(new Mock<IPrincipal>().Object);
            var mockFile = new Mock <HttpPostedFileBase>();

            mockFile.Setup(f => f.ContentLength).Returns(100);
            mockFile.Setup(f => f.FileName).Returns("test_web_file.png");
            mockFile.Setup(f => f.SaveAs(It.IsAny <string>())).Callback((string filename) => { File.WriteAllText(filename, "test web file"); });
            var mockFiles = new Mock <HttpFileCollectionBase>();

            mockFiles.Setup(f => f.Count).Returns(1);
            mockFiles.Setup(f => f[It.IsAny <int>()]).Returns(mockFile.Object);
            context.Request.Setup(x => x.Files).Returns(() => mockFiles.Object);

            var webfile = new WebFile {
                Name = "Test web file"
            };
            var result = controller.Create(webfile);

            Assert.IsInstanceOfType(result.Result, typeof(ViewResult));

            var viewResult = (ViewResult)result.Result;

            Assert.IsInstanceOfType(viewResult.Model, typeof(UploadResults));

            var model = (UploadResults)viewResult.Model;

            Assert.AreEqual(model.status, UploadResults.OK);
        }
 public void Setup()
 {
     config = new Configuration { RootPath = "/" };
     factory = new MockRepository(MockBehavior.Default);
     provider = factory.Create<IStorageProvider>();
     controller = new WebFilesController(provider.Object);
     context = factory.Create<HttpContextBase>();
     request = factory.Create<HttpRequestBase>();
     controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
 }