public NonceValidator(
  PrivateHashEncoder privateHashEncoder, 
  Base64Converter base64Converter,
  NonceTimeStampParser nonceTimeStampParser, 
  int staleTimeOutInSeconds)
 {
     this.privateHashEncoder = privateHashEncoder;
      this.base64Converter = base64Converter;
      this.nonceTimeStampParser = nonceTimeStampParser;
      this.staleTimeOutInSeconds = staleTimeOutInSeconds;
 }
        public void ShouldPositivelyValidateNonceWhenNonceIsGeneratedUsingPrivateKey()
        {
            var md5Encoder = new MD5Encoder();
             var base64Converter = new Base64Converter();
             var privateHashEncoder = new PrivateHashEncoder(TestResources.PrivateKey, md5Encoder);

             var nonceTimeStampParser = new NonceTimeStampParser();
             var nonceValidator = new NonceValidator(privateHashEncoder, base64Converter, nonceTimeStampParser, 600);
             bool result = nonceValidator.Validate(TestResources.GeneratedValidNonce, TestResources.IpAddress);
             Assert.That(result, Is.True);
        }
        public void ShouldIndicateThatNonceIsStaleWithOldTimeStamp()
        {
            var md5Encoder = new MD5Encoder();
             var base64Converter = new Base64Converter();
             var privateHashEncoder = new PrivateHashEncoder(TestResources.PrivateKey, md5Encoder);

             var nonceTimeStampParser = new NonceTimeStampParser();
             var nonceValidator = new NonceValidator(privateHashEncoder, base64Converter, nonceTimeStampParser, 600);
             bool result = nonceValidator.IsStale(TestResources.GeneratedValidNonce);
             Assert.That(result, Is.True);
        }
        public void ShouldIndicateThatNonceIsNotStale()
        {
            var md5Encoder = new MD5Encoder();
             var base64Converter = new Base64Converter();
             var privateHashEncoder = new PrivateHashEncoder(TestResources.PrivateKey, md5Encoder);

             var nonceTimeStampParser = new NonceTimeStampParser();
             var nonceValidator = new NonceValidator(privateHashEncoder, base64Converter, nonceTimeStampParser, 600);
             var nonceGenerator = new NonceGenerator(privateHashEncoder, base64Converter);

             bool result = nonceValidator.IsStale(nonceGenerator.Generate(TestResources.IpAddress));
             Assert.That(result, Is.False);
        }
 public void ShouldThrowWhenInvalidString()
 {
     var nonceTimeStampParser = new NonceTimeStampParser();
      nonceTimeStampParser.Parse("sdfsdf");
 }
 public void ShouldCorrectlyParseNonceTimeStap()
 {
     var nonceTimeStampParser = new NonceTimeStampParser();
      DateTime parsedDateTime = nonceTimeStampParser.Parse(TestResources.NonceTimeStampAsString);
      Assert.That(parsedDateTime, Is.EqualTo(TestResources.NonceTimeStampAsDateTime));
 }