public void GenerateReturnsErrorIfReadAllImageFilesReturnsError() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; projectResponse.Project.SmallFileIds.Add("1"); MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); MockMakerClient.Setup(x => x.ReadAllImageFiles(It.IsAny <IList <string> >())).Returns(new ImageFileIndexResponse() { Error = "Error" }); MockMakerClient.Setup(x => x.ReadImageFile(It.IsAny <string>())).Returns(new ImageFileResponse() { }); var response = model.Generate(MockMakerClient.Object, id); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public void GenerateReturnsErrorIfIdNullOrEmpty() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var response = model.Generate(MockMakerClient.Object, null); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public ActionResult Generate(string Id) { var model = new GenerateMosaicModel(); model.ReadProjectData(client, Id); return(View("Generate", model)); }
public ActionResult UpdateColourAnalysis(string Id, int height, int width) { // Generate the mosaic model so enable update to the colour analysis of library var model = new GenerateMosaicModel(); model.ReadProjectData(client, Id, true, height, width); if (model.ColoursModel != null) { Response.StatusCode = (int)HttpStatusCode.OK; return(Json(model.ColoursModel)); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Error in generating colour model")); }
public void GenerateReturnsErrorIfReadProjectReturnsError() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Error = "Error" }; MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); var response = model.Generate(MockMakerClient.Object, id); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public void GenerateReturnsErrorIfProjectDoesNotContainAnySmallFiles() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); var response = model.Generate(MockMakerClient.Object, id); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public void PreviewEdgesReturnsErrorIfThresholdIsAbove255() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; projectResponse.Project.SmallFileIds.Add("1"); MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); var response = model.PreviewEdges(MockMakerClient.Object, id, 256); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public void ReadProjectDataSetsPartialModel() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; projectResponse.Project.SmallFileIds.Add("1"); MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); model.ReadProjectData(MockMakerClient.Object, id, false); Assert.AreEqual(id, model.PartialModel.Item1); Assert.AreEqual(model.State, model.PartialModel.Item2); }
public void ReadProjectDataSetsAllProjectPropertiesCorrectly() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; projectResponse.Project.SmallFileIds.Add("1"); MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); model.ReadProjectData(MockMakerClient.Object, id, false); Assert.AreEqual(id, model.ProjectId); Assert.AreEqual(1, model.TileImageCount); }
public void GenerateReturnErrorIfEnhancedAndEdgeDetectionBothTrue() { var id = ObjectId.GenerateNewId().ToString(); var model = new GenerateMosaicModel(); var projectResponse = new ProjectResponse() { Project = new ProjectStructure() { Id = id, LargeFileId = ObjectId.GenerateNewId().ToString() } }; projectResponse.Project.SmallFileIds.Add("1"); MockMakerClient.Setup(x => x.ReadProject(It.Is <string>(y => y.Equals(id)))).Returns(projectResponse); var response = model.Generate(MockMakerClient.Object, id, enhanced: true, edgeDetection: true, threshold: 0); Assert.IsFalse(String.IsNullOrEmpty(response.Error)); }
public ActionResult PreviewEdges(string id, int threshold) { var model = new GenerateMosaicModel(); var response = model.PreviewEdges(client, id, threshold); if (String.IsNullOrEmpty(response.Error)) { // copy generated image to root directory to allow it display var image = new ViewImageModel(EDGE_IMAGE_LOCATION); image.CopyImage(response.Location); // update project status and store location var insertResponse = new EdgeFileModel().InsertEdgeFile(client, id, image.ImagePath); if (String.IsNullOrEmpty(insertResponse.Error)) { Response.StatusCode = (int)HttpStatusCode.OK; return(Json(image.ImagePath)); } } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(response.Error)); }
public ActionResult GenerateMosaic(string id, bool random, int tileWidth, int tileHeight, bool colourBlended, bool enhanced, int enhancedThreshold, bool edgeDetection, int edgeDetectionThreshold) { // Generate the mosaic passing the project id and whether to randomise tile selection var model = new GenerateMosaicModel(); var response = model.Generate(client, id, random, tileWidth, tileHeight, colourBlended, enhanced, enhancedThreshold, edgeDetection, edgeDetectionThreshold); if (String.IsNullOrEmpty(response.Error)) { // copy generated image to root directory to allow it display var image = new ViewImageModel(); image.CopyImage(response.Location); // update project status and store location var insertResponse = new MosaicFileModel().InsertMosaicFile(client, id, image.ImagePath); if (String.IsNullOrEmpty(insertResponse.Error)) { Response.StatusCode = (int)HttpStatusCode.OK; return(Json(image.ImagePath)); } } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(response.Error)); }