· 9 years ago · Oct 31, 2016, 05:12 PM
1public class EmailModel :Email
2{
3 public EmailModel() :base("EmailModel")
4 {
5
6 }
7 public string To = "**********@gmail.com";
8
9 [Display(ResourceType = typeof(Resource), Name = "Name")]
10 [Required(ErrorMessageResourceName = "Error_NameRequired", ErrorMessageResourceType = typeof(Resource))]
11 public string Name { get; set; }
12
13 [DataType(DataType.EmailAddress)]
14 [Display(ResourceType = typeof (Resource), Name = "Email")]
15 [Required(ErrorMessageResourceName = "Error_EmailRequired", ErrorMessageResourceType = typeof(Resource))]
16 [RegularExpression(".+@.+", ErrorMessageResourceName = "Error_EmailWrong", ErrorMessageResourceType = typeof(Resource))]
17 public string Email { get; set; }
18
19 [Display(ResourceType = typeof(Resource), Name = "Topic")]
20 [Required(ErrorMessageResourceName = "Error_TopicRequired", ErrorMessageResourceType = typeof(Resource))]
21 public string Topic { get; set; }
22
23 [Display(ResourceType = typeof(Resource), Name = "Massage")]
24 [DataType(DataType.MultilineText)]
25 [Required(ErrorMessageResourceName = "Error_MassageRequired", ErrorMessageResourceType = typeof(Resource))]
26 public string Massage { get; set; }
27}
28
29@model *******.Models.EmailModel
30@{
31 Layout = null;
32}
33To: @Model.To
34Subject: @Model.Topic
35
36The massage from @Model.Name @Model.Email
37Massage text:
38@Model.Massage
39
40public class EmailSetter
41 {
42 public const string DefaultName = "NameTest";
43 public const string DefaultEmail = "EmailTest@domaintest.test";
44 public const string DefaultTopic = "TopicTest";
45 public const string DefaultMassage = "Massage test.";
46 public EmailModel GetEmail(string Name = DefaultName, string Topic = DefaultTopic, string Email = DefaultEmail, string Massage = DefaultMassage)
47 {
48 EmailModel email = new EmailModel();
49 email.Name = Name;
50 email.Topic = Topic;
51 email.Email = Email;
52 email.Massage = Massage;
53 return email;
54 }
55 }
56 [TestClass]
57 public class MailTests
58 {
59 [TestMethod]
60 public void MailSendWithRightModelAndCaptcha()
61 {
62 //Arrange
63 HomeController controller = new HomeController();
64 Mock<EmailModel> email = new Mock<EmailModel>();
65 email.Object.Name = EmailSetter.DefaultName;
66 email.Object.Email = EmailSetter.DefaultName;
67 email.Object.Topic = EmailSetter.DefaultTopic;
68 email.Object.Massage = EmailSetter.DefaultMassage;
69 //Act
70 controller.Contact(email.Object);
71 //Assert
72 email.Verify(mail => mail.Send());
73 }
74 }
75
76[HttpPost]
77 [ValidateAntiForgeryToken]
78 public ActionResult Contact(EmailModel emailModel)
79 {
80 if(ModelState.IsValid)
81 {
82 ViewBag.Send = true;
83 emailModel.Send();
84 ModelState.Clear();
85 }
86 return View(emailModel);
87 }