Guest User

Untitled

a guest
Apr 16th, 2018
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. using System;
  2. using Moq;
  3. using Rioshu.Educa;
  4. using Rioshu.Educa.Data;
  5. using Rioshu.Educa.Models;
  6. using Rioshu.Educa.Services;
  7. using Machine.Specifications;
  8. using It=Machine.Specifications.It;
  9.  
  10. namespace Membership.App.Facts
  11. {
  12. [Subject(typeof(MembershipService), "Registering a user")]
  13. public class when_member_data_is_totally_correct : Membership_service_subscription_context
  14. {
  15. Because of = () => {
  16. suo.Register(signup);
  17. };
  18.  
  19. It should_save_member_to_repository = () => {
  20. memberRepository.Verify(r => r.Add(Moq.It.Is<Member>(m => m.Username == "username")));
  21. };
  22. }
  23.  
  24. [Subject(typeof(MembershipService), "Registering a user")]
  25. public class when_member_data_is_incorrect : Membership_service_subscription_context
  26. {
  27. static Exception exception;
  28.  
  29. Because of = () => {
  30. signup.Username = string.Empty;
  31. exception = Catch.Exception(() => suo.Register(signup));
  32. };
  33.  
  34. It should_throw_a_validation_exception = () => {
  35. exception.ShouldNotBeNull();
  36. exception.ShouldBeOfType<ValidationException>();
  37. };
  38. }
  39.  
  40. [Subject(typeof(MembershipService), "Registering a user"), Tags("failure")]
  41. public class when_username_already_exists : Membership_service_subscription_context
  42. {
  43. static Exception exception;
  44.  
  45. Because of = () => {
  46. signup.Username = "username";
  47. exception = Catch.Exception(() => suo.Register(signup));
  48. };
  49.  
  50. It should_throw_a_validation_exception = () => {
  51. exception.ShouldNotBeNull();
  52. exception.ShouldBeOfType<ValidationException>();
  53. };
  54. }
  55.  
  56. [Subject(typeof(MembershipService), "Registering a user")]
  57. public class when_member_is_going_to_be_registered : Membership_service_subscription_context
  58. {
  59. Because of = () => {
  60. suo.Register(signup);
  61. };
  62.  
  63. It should_check_if_username_is_already_taken = () => {
  64. memberRepository.Verify(r => r.GetByUsername(Moq.It.IsAny<string>()));
  65. };
  66. }
  67.  
  68. public class Membership_service_subscription_context
  69. {
  70. protected static Mock<IMemberRepository> memberRepository = new Mock<IMemberRepository>();
  71. protected static IMembershipService suo;
  72. protected static SignUpForm signup;
  73.  
  74. protected static Member member;
  75.  
  76. Establish context = () =>
  77. {
  78. member = new Member("username", "first name", "last name", string.Empty, DateTime.Now, Gender.Male, MemberType.Student);
  79. signup = new SignUpForm
  80. {
  81. Username = "non.exists",
  82. FirstName = "first name",
  83. LastName = "last name",
  84. Email = "email@mail.com",
  85. Password = "password",
  86. RepeatPassword = "password",
  87. BirthDate = DateTime.Now,
  88. SchoolId = 1
  89. };
  90.  
  91. memberRepository.Setup(r => r.GetByUsername(member.Username)).Returns(member);
  92. memberRepository.Setup(r => r.GetByUsername("non.exist")).Returns(() => null);
  93.  
  94. suo = new MembershipService();
  95. };
  96. }
  97. }
Add Comment
Please, Sign In to add comment