public void Given_ValidAESKey_When_MapToXMLPOCO_Then_EncodingHelperClassMustBeused()
        {
            // Arrange
            var key = new AesKey()
            {
                Iv  = RandomByteArrayUtils.CreateRandomByteArray(512),
                Key = RandomByteArrayUtils.CreateRandomByteArray(1024),
            };
            var ivMapsTo  = "myIVString";
            var keyMapsTo = "myIVString";
            var converter = new Mock <IKeyDetailsPersistConverter>(MockBehavior.Strict);

            converter.Setup(c => c.Encode(key.Iv)).Returns(ivMapsTo);
            converter.Setup(c => c.Encode(key.Key)).Returns(keyMapsTo);

            // Act
            var aesKeyToXmlMapper = new AesKeyToXmlMapper(converter.Object);
            var xmlPoco           = new EnvCryptKey();

            aesKeyToXmlMapper.Map(key, xmlPoco);

            // Assert
            xmlPoco.Aes.Should().NotBeNull().And.HaveCount(1);
            xmlPoco.Aes[0].Iv.Should().Be(ivMapsTo);
            xmlPoco.Aes[0].Key.Should().Be(keyMapsTo);
            converter.Verify(c => c.Encode(key.Iv), Times.Once);
            converter.Verify(c => c.Encode(key.Key), Times.Once);
        }
        public void Given_ValidAESKey_When_MapToXMLPOCO_Then_NameMappedCorrectly()
        {
            // Arrange
            var keyName = "MyAESKey";
            var key     = new AesKey()
            {
                Name = keyName,
                Iv   = new byte[1],
                Key  = new byte[1],
            };
            var converter = new Mock <IKeyDetailsPersistConverter>();

            converter.Setup(c => c.Encode(It.IsAny <byte[]>())).Returns("a string not important to the test, but required to satisfy the method's post condition");

            // Act
            var aesKeyToXmlMapper = new AesKeyToXmlMapper(converter.Object);
            var xmlPoco           = new EnvCryptKey();

            aesKeyToXmlMapper.Map(key, xmlPoco);

            // Assert
            xmlPoco.Aes.Should().NotBeNull().And.HaveCount(1);
            xmlPoco.Name.Should().Be(keyName);
        }