private void View_EventUploadAvatar(object sender, AvatarUploadEventArgs e) { var uploadedFile = e.PostedFile; if (uploadedFile.ContentType != "image/jpg" && uploadedFile.ContentType != "image/png" && uploadedFile.ContentType != "image/jpeg") { this.View.Model.StatusMessage = "Моля изберете картинка с разширение .png, .jpg или .jpeg"; return; } if (uploadedFile.ContentLength > MaximumSizeOfAvatar) { this.View.Model.StatusMessage = $"Аватарът Ви не трябва да е с размер по-голям от {MaximumSizeOfAvatar / (1000 * 1000)}Mb"; return; } try { uploadedFile.SaveAs(e.AvatarStorateLocation); // TODO Maaybe make interception this.accountManagementService.UploadAvatar(e.LoggedUserUserName, e.UserAvatarUrl); this.View.Model.StatusMessage = "Аватарът е качен"; } catch (Exception) { this.View.Model.StatusMessage = "Моля, опитайте отново!"; } }
public void CallSaveAsMethodFromTheFile_Once_AndSetCorrectlyStatusMessage_WhenContentTypesAreValidAndContentLengthIsValid(int contentLength, string contentType) { var mockedAvatarUploadView = new Mock <IAvatarUploadView>(); var mockedAccountManagementService = new Mock <IAccountManagementService>(); var mockedModel = new AvatarUploadModel(); mockedAvatarUploadView.Setup(x => x.Model).Returns(mockedModel); var avatarUploadPresenter = new AvatarUploadPresenter(mockedAvatarUploadView.Object, mockedAccountManagementService.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.SetupGet(x => x.ContentType).Returns(contentType); mockedFile.SetupGet(x => x.ContentLength).Returns(contentLength); var args = new AvatarUploadEventArgs() { PostedFile = mockedFile.Object }; mockedAvatarUploadView.Raise(x => x.EventUploadAvatar += null, args); string expectedMessage = "Аватарът е качен"; mockedFile.Verify(x => x.SaveAs(It.IsAny <string>()), Times.Once()); Assert.AreEqual(expectedMessage, mockedAvatarUploadView.Object.Model.StatusMessage); }
public void NotCallSaveAsMethodFromTheFile_AndSetStatusMessageCorrectly_WhenContentTypesAreInvalid(string contentType) { var mockedAvatarUploadView = new Mock <IAvatarUploadView>(); var mockedAccountManagementService = new Mock <IAccountManagementService>(); var mockedModel = new AvatarUploadModel(); mockedAvatarUploadView.Setup(x => x.Model).Returns(mockedModel); var avatarUploadPresenter = new AvatarUploadPresenter(mockedAvatarUploadView.Object, mockedAccountManagementService.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.SetupGet(x => x.ContentType).Returns(contentType); var args = new AvatarUploadEventArgs() { PostedFile = mockedFile.Object }; mockedAvatarUploadView.Raise(x => x.EventUploadAvatar += null, args); var expectedMessage = "Моля изберете картинка с разширение .png, .jpg или .jpeg"; mockedFile.Verify(x => x.SaveAs(It.IsAny <string>()), Times.Never()); Assert.AreEqual(expectedMessage, mockedAvatarUploadView.Object.Model.StatusMessage); }
public void SetCorrectErrorMessage_WhenExceptionIsThrowsException(int validContentLength, string validContentType) { var mockedAvatarUploadView = new Mock <IAvatarUploadView>(); var mockedAccountManagementService = new Mock <IAccountManagementService>(); var mockedModel = new AvatarUploadModel(); mockedAvatarUploadView.Setup(x => x.Model).Returns(mockedModel); var avatarUploadPresenter = new AvatarUploadPresenter(mockedAvatarUploadView.Object, mockedAccountManagementService.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.SetupGet(x => x.ContentType).Returns(validContentType); mockedFile.SetupGet(x => x.ContentLength).Returns(validContentLength); var args = new AvatarUploadEventArgs() { PostedFile = mockedFile.Object, LoggedUserUserName = "******", UserAvatarUrl = "~/path", AvatarStorateLocation = "/random" }; mockedFile.Setup(x => x.SaveAs(args.AvatarStorateLocation)).Throws(new Exception()); mockedAvatarUploadView.Raise(x => x.EventUploadAvatar += null, args); var expectedMessage = "Моля, опитайте отново!"; Assert.AreSame(expectedMessage, mockedAvatarUploadView.Object.Model.StatusMessage); }
public void NotCall_UploadAvatar_FromAccountManagementServiceOnceWhenContentTypeOrContentLengthInAreValid(int contentLength, string contentType) { var mockedAvatarUploadView = new Mock <IAvatarUploadView>(); var mockedAccountManagementService = new Mock <IAccountManagementService>(); var mockedModel = new AvatarUploadModel(); mockedAvatarUploadView.Setup(x => x.Model).Returns(mockedModel); var avatarUploadPresenter = new AvatarUploadPresenter(mockedAvatarUploadView.Object, mockedAccountManagementService.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.SetupGet(x => x.ContentType).Returns(contentType); mockedFile.SetupGet(x => x.ContentLength).Returns(contentLength); var args = new AvatarUploadEventArgs() { PostedFile = mockedFile.Object, LoggedUserUserName = "******", UserAvatarUrl = "~/path" }; mockedAvatarUploadView.Raise(x => x.EventUploadAvatar += null, args); mockedAccountManagementService.Verify(x => x.UploadAvatar(args.LoggedUserUserName, args.UserAvatarUrl), Times.Never()); }
public void NotCallCallSaveAsMethodFromTheFile_WhenContentTypesAreValidButContentLengthIsInvalid(int contentLength, string contentType) { var mockedAvatarUploadView = new Mock <IAvatarUploadView>(); var mockedAccountManagementService = new Mock <IAccountManagementService>(); var mockedModel = new AvatarUploadModel(); mockedAvatarUploadView.Setup(x => x.Model).Returns(mockedModel); var avatarUploadPresenter = new AvatarUploadPresenter(mockedAvatarUploadView.Object, mockedAccountManagementService.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.SetupGet(x => x.ContentType).Returns(contentType); mockedFile.SetupGet(x => x.ContentLength).Returns(contentLength); var args = new AvatarUploadEventArgs() { PostedFile = mockedFile.Object }; mockedAvatarUploadView.Raise(x => x.EventUploadAvatar += null, args); mockedFile.Verify(x => x.SaveAs(It.IsAny <string>()), Times.Never()); }