public PasswordGenerator(IPasswordTruncator passwordTruncator, IHmacGeneratorResolver hmacGeneratorResolver, ICharacterSpaceGenerator characterSpaceGenerator, IUtf8Converter utf8Converter, IHmacToArbitraryEncodingConverter hmacToArbitraryEncodingConverter)
 {
     this.passwordTruncator                = passwordTruncator;
     this.hmacGeneratorResolver            = hmacGeneratorResolver;
     this.characterSpaceGenerator          = characterSpaceGenerator;
     this.utf8Converter                    = utf8Converter;
     this.hmacToArbitraryEncodingConverter = hmacToArbitraryEncodingConverter;
 }
        public void SetUp()
        {
            var hmacSha1GeneratorMock = new Mock <IHmacSha1Generator>();

            hmacSha1GeneratorMock.Setup(h => h.HmacGenerator).Returns(HmacGenerator.Sha1);

            var hmacSha256GeneratorMock = new Mock <IHmacSha256Generator>();

            hmacSha256GeneratorMock.Setup(h => h.HmacGenerator).Returns(HmacGenerator.Sha256);

            var hmacSha512GeneratorMock = new Mock <IHmacSha512Generator>();

            hmacSha512GeneratorMock.Setup(h => h.HmacGenerator).Returns(HmacGenerator.Sha512);

            hmacGeneratorResolver = new HmacGeneratorResolver(new IHmacGenerator[]
                                                              { hmacSha1GeneratorMock.Object, hmacSha256GeneratorMock.Object, hmacSha512GeneratorMock.Object });
        }