public void ResolveBlockName_ResolvesBlockName(string dummyBlockName, string expectedResult)
        {
            // Arrange
            FlexiCardsBlockFactory testSubject = CreateFlexiCardsBlockFactory();

            // Act
            string result = testSubject.ResolveBlockName(dummyBlockName);

            // Assert
            Assert.Equal(expectedResult, result);
        }
        public void ValidateDefaultCardOptions_DoesNothingIfDefaultCardOptionsIsNotNull()
        {
            // Arrange
            Mock <IFlexiCardsBlockOptions> mockFlexiCardsBlockOptions = _mockRepository.Create <IFlexiCardsBlockOptions>();

            mockFlexiCardsBlockOptions.Setup(f => f.DefaultCardOptions).Returns(_mockRepository.Create <IFlexiCardBlockOptions>().Object);
            FlexiCardsBlockFactory testSubject = CreateFlexiCardsBlockFactory();

            // Act and assert
            testSubject.ValidateDefaultCardOptions(mockFlexiCardsBlockOptions.Object); // All good as long as this doesn't throw
            _mockRepository.VerifyAll();
        }
        public void ValidateCardSize_ThrowsOptionsExceptionIfCardSizeIsInvalid()
        {
            // Arrange
            FlexiCardsBlockFactory   testSubject   = CreateFlexiCardsBlockFactory();
            const FlexiCardBlockSize dummyCardSize = (FlexiCardBlockSize)9;

            // Act and assert
            OptionsException result = Assert.Throws <OptionsException>(() => testSubject.ValidateCardSize(dummyCardSize));

            Assert.Equal(string.Format(Strings.OptionsException_OptionsException_InvalidOption,
                                       nameof(IFlexiCardsBlockOptions.CardSize),
                                       string.Format(Strings.OptionsException_Shared_ValueMustBeAValidEnumValue, dummyCardSize,
                                                     nameof(FlexiCardBlockSize))),
                         result.Message);
        }
        public void ValidateDefaultCardOptions_ThrowsOptionsExceptionIfDefaultCardOptionsIsNull()
        {
            // Arrange
            Mock <IFlexiCardsBlockOptions> mockFlexiCardsBlockOptions = _mockRepository.Create <IFlexiCardsBlockOptions>();

            mockFlexiCardsBlockOptions.Setup(f => f.DefaultCardOptions).Returns((IFlexiCardBlockOptions)null);
            FlexiCardsBlockFactory testSubject = CreateFlexiCardsBlockFactory();

            // Act and assert
            OptionsException result = Assert.Throws <OptionsException>(() => testSubject.ValidateDefaultCardOptions(mockFlexiCardsBlockOptions.Object));

            _mockRepository.VerifyAll();
            Assert.Equal(string.Format(Strings.OptionsException_OptionsException_InvalidOption,
                                       nameof(IFlexiCardsBlockOptions.DefaultCardOptions),
                                       Strings.OptionsException_Shared_ValueMustNotBeNull),
                         result.Message);
        }