private void InsertMockUser(string email)
        {
            var  configuration = new WidgetsMappingConfiguration();
            var  context       = new DataContext("Widgets", configuration);
            var  repository    = new Repository(context);
            var  userService   = new UserService(repository);
            User user          = userService.CreateUser(email);

            context.SaveChanges();
        }
        public void Get_User_Success()
        {
            // Arrange
            var email = "*****@*****.**";

            InsertMockUser(email);
            var configuration = new WidgetsMappingConfiguration();
            var context       = new DataContext("Widgets", configuration);
            var repository    = new Repository(context);
            var userService   = new UserService(repository);

            // Act
            User user = userService.GetUserByEmail(email);

            // Assert
            Assert.AreEqual(user.Email, email);
        }
        public void Create_InvalidUser_Fail()
        {
            // Arrange
            var configuration = new WidgetsMappingConfiguration();
            var context       = new DataContext("Widgets", configuration);
            var repository    = new Repository(context);
            var userService   = new UserService(repository);
            var email         = string.Empty;

            // Act
            User user = userService.CreateUser(email);

            context.SaveChanges();

            // Assert
            Assert.IsNull(user);
        }
        public void Get_InvalidUser_Fail()
        {
            // Arrange
            var emailAdded  = "*****@*****.**";
            var emailTested = "*****@*****.**";

            InsertMockUser(emailAdded);
            var configuration = new WidgetsMappingConfiguration();
            var context       = new DataContext("Widgets", configuration);
            var repository    = new Repository(context);
            var userService   = new UserService(repository);

            // Act
            User user = userService.GetUserByEmail(emailTested);

            // Assert
            Assert.IsNull(user);
        }
        public void Create_ValidUser_Success()
        {
            // Arrange
            var configuration = new WidgetsMappingConfiguration();
            var context       = new DataContext("Widgets", configuration);
            var repository    = new Repository(context);
            var userService   = new UserService(repository);
            var email         = "*****@*****.**";

            // Act
            User user = userService.CreateUser(email);

            context.SaveChanges();

            // Assert
            Assert.IsTrue(user.UserId != 0);
            Assert.IsTrue(user.Email == email);
        }