public void Should_return_false_when_parameters_are_missing_or_invalid(string key)
        {
            // Given
            var userCacheService = new UserCacheService();

            // When
            var isValid = userCacheService.Validate(key);

            // Then
            isValid.ShouldBe(false);
        }
        public void Should_return_false_when_parameters_are_missing_or_invalid(string key)
        {
            // Given
            var userCacheService = new UserCacheService();

            // When
            var success = userCacheService.Remove(key);

            // Then
            success.ShouldBe(false);
        }
        public void Should_return_null_when_parameters_are_missing_or_invalid(string key)
        {
            // Given
            var userCacheService = new UserCacheService();

            // When
            var user = userCacheService.GetUser(key);

            // Then
            user.ShouldBe(null);
        }
        public void Should_return_null_key_when_user_is_null()
        {
            // Given
            User user = null;
            var userCacheService = new UserCacheService();

            // When
            var key = userCacheService.Add(user);

            // Then
            key.ShouldBe(null);
        }
        public void Should_return_success_is_true_when_removing_known_key()
        {
            // Given
            var user = new User() { Id = MakeFake.Guid };
            var userCacheService = new UserCacheService();
            var key = userCacheService.Add(user);

            // When
            var success = userCacheService.Remove(key);

            // Then
            success.ShouldBe(true);
        }
        public void Should_return_true_when_key_is_known()
        {
            // Given
            var user = new User() { Id = MakeFake.Guid };
            var userCacheService = new UserCacheService();
            var key = userCacheService.Add(user);

            // When
            var isValid = userCacheService.Validate(key);

            // Then
            isValid.ShouldBe(true);
        }
        public void Should_return_valid_key_when_user_is_added()
        {
            // Given
            var user = new User() { Id = MakeFake.Guid };
            var userCacheService = new UserCacheService();

            // When
            var key = userCacheService.Add(user);

            // Then
            key.ShouldNotBe(null);
            key.IsGuid().ShouldBe(true);
        }
        public void Should_return_success_is_false_when_key_is_unknown()
        {
            // Given
            var user = new User() { Id = MakeFake.Guid };
            var unknownKey = MakeFake.Guid;
            var userCacheService = new UserCacheService();
            var key = userCacheService.Add(user);

            // When
            var success = userCacheService.Remove(unknownKey);

            // Then
            success.ShouldBe(false);
        }
        public void Should_return_null_user_after_user_is_removed()
        {
            // Given
            var userId = MakeFake.Guid;
            var userCacheService = new UserCacheService();
            var key = userCacheService.Add(new User() { Id = userId });

            // When
            userCacheService.Remove(key);
            var user = userCacheService.GetUser(key);

            // Then
            user.ShouldBe(null);
        }
        public void Should_return_user_when_key_is_known()
        {
            // Given
            var userId = MakeFake.Guid;
            var userCacheService = new UserCacheService();
            var key = userCacheService.Add(new User() { Id = userId });

            // When
            var user = userCacheService.GetUser(key);

            // Then
            user.ShouldNotBe(null);
            user.Id.ShouldBe(userId);
        }
        public void Should_return_null_when_key_is_unknown()
        {
            // Given
            var userId = MakeFake.Guid;
            var userCacheService = new UserCacheService();
            var unknownKey = MakeFake.Guid;
            userCacheService.Add(new User() { Id = userId });

            // When
            var user = userCacheService.GetUser(unknownKey);

            // Then
            user.ShouldBe(null);
        }
        public void Should_return_false_when_key_is_unknown()
        {
            // Given
            var user = new User() { Id = MakeFake.Guid };
            var unknownKey = MakeFake.Guid;
            var userCacheService = new UserCacheService();
            userCacheService.Add(user);

            // When
            var isValid = userCacheService.Validate(unknownKey);

            // Then
            isValid.ShouldBe(false);
        }