Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Subject(typeof(MembershipService), "Registering a user")]
- public class when_member_data_is_totally_correct : Membership_service_subscription_context
- {
- Because of = () =>
- suo.Register(signup);
- It should_save_member_to_repository = () =>
- memberRepository.Verify(r => r.Add(Moq.It.Is<Member>(m => m.Username == "non.exists")));
- }
- [Subject(typeof(MembershipService), "Registering a user")]
- public class when_member_data_is_submited : Membership_service_subscription_context
- {
- Because of = () =>
- suo.Register(signup);
- It should_check_with_repository_if_user_already_exists = () =>
- memberRepository.Verify(r => r.GetByUsername(Moq.It.IsAny<string>()));
- }
- [Subject(typeof(MembershipService), "Registering a user")]
- public class when_username_is_already_taken : Membership_service_subscription_context
- {
- static Exception exception;
- Because of = () => {
- signup.Username = "username";
- exception = Catch.Exception(() => suo.Register(signup));
- };
- It should_throw_a_validation_exception = () =>
- exception.ShouldBeOfType<ValidationException>();
- }
- public class Membership_service_subscription_context
- {
- protected static Mock<IMemberRepository> memberRepository = new Mock<IMemberRepository>();
- protected static IMembershipService suo;
- protected static SignUpForm signup;
- protected static Member member;
- Establish context = () =>
- {
- member = new Member("username", "first name", "last name", string.Empty, DateTime.Now, Gender.Male, MemberType.Student);
- signup = new SignUpForm
- {
- Username = "non.exists",
- FirstName = "first name",
- LastName = "last name",
- Email = "email@mail.com",
- Password = "password",
- RepeatPassword = "password",
- BirthDate = DateTime.Now,
- SchoolId = 1
- };
- memberRepository.Setup(r => r.GetByUsername(member.Username)).Returns(member);
- memberRepository.Setup(r => r.GetByUsername("non.exist")).Returns(() => null);
- suo = new MembershipService(memberRepository.Object);
- };
- }
Add Comment
Please, Sign In to add comment