public ActionResult UploadPackage(HttpPostedFileBase file) { if (file == null) { return(RedirectToAction("Index", "Home")); } // save file into memory stream using (var memoryStream = new MemoryStream()) { file.InputStream.Position = 0; while (file.InputStream.Position < file.InputStream.Length) { var dataSinge = (byte)file.InputStream.ReadByte(); memoryStream.WriteByte(dataSinge); } // get the module info from stream try { IModuleInfo moduleInfo = _zipPackager.UnPack(memoryStream.ToArray()); _repositoryModel.AddModule(moduleInfo); } catch (Exception e) { ViewData["Message"] = e.Message; return(View("Error")); } } return(RedirectToAction("Index", "Home")); }
public void adding_duplicate_module_raises_exception() { // set up infos, equal only by id Mock <IModuleInfo> moduleInfoMock = GetModuleInfoMock(); Mock <IModuleInfo> duplicateInfoMock = GetDuplicateInfoMock(); // put one info into storage _storageMock.Setup(x => x.GetAvaliableModules()).Returns(new List <IModuleInfo> { moduleInfoMock.Object }).Verifiable( "List of modules should be accesed"); // act and assert Assert.Throws <ArgumentException>( () => _repositoryModel.AddModule(duplicateInfoMock.Object)); }