Beispiel #1
0
        public ProtoacmeClient(IAcmeRestApi acmeApi)
        {
            _acmeApi = acmeApi;

            _directoryCache = new CachedRepository <AcmeDirectory>(GetDirectory);
            _nonceCache     = new CachedRepository <string>(GetNewNonce);

            _accountService     = new AcmeAccountService(_acmeApi, _directoryCache, _nonceCache);
            _certificateService = new AcmeCertificateService(_acmeApi, _directoryCache, _nonceCache);
            _challengeService   = new AcmeChallengeService(_acmeApi, _directoryCache, _nonceCache);
        }
Beispiel #2
0
        public async Task CreateAccount_ShouldReturnExpectedNewAccount()
        {
            //ARRANGE
            var acmeApiMock        = new Mock <IAcmeRestApi>();
            var directoryCacheMock = new Mock <ICachedRepository <AcmeDirectory> >();
            var nonceCacheMock     = new Mock <ICachedRepository <string> >();

            AcmeCreateAccount             inputAccount    = TestHelpers.CreateAccount;
            AcmeApiResponse <AcmeAccount> accountResponse = TestHelpers.AcmeAccountResponse;

            acmeApiMock.Setup(method => method.CreateAccountAsync(It.IsAny <AcmeDirectory>(), It.IsAny <string>(), It.IsAny <AcmeCreateAccount>()))
            .ReturnsAsync(accountResponse);

            AcmeAccountService srv = new AcmeAccountService(acmeApiMock.Object, directoryCacheMock.Object, nonceCacheMock.Object);

            //ACT
            var expected = await srv.CreateAsync(inputAccount);

            //ASSERT
            expected.ShouldBe(accountResponse.Data);
        }
Beispiel #3
0
        public async Task ChangeKey_ShouldUpdateLastNonce()
        {
            //ARRANGE
            var acmeApiMock        = new Mock <IAcmeRestApi>();
            var directoryCacheMock = new Mock <ICachedRepository <AcmeDirectory> >();
            var nonceCacheMock     = new Mock <ICachedRepository <string> >();

            AcmeApiResponse successResponse = TestHelpers.AcmeEmptyResponseWithNonce;
            AcmeAccount     account         = TestHelpers.AcmeAccountResponse.Data;

            acmeApiMock.Setup(method => method.RollOverAccountKeyAsync(It.IsAny <AcmeDirectory>(), It.IsAny <string>(), It.IsAny <AcmeAccount>()))
            .ReturnsAsync(successResponse);

            AcmeAccountService srv = new AcmeAccountService(acmeApiMock.Object, directoryCacheMock.Object, nonceCacheMock.Object);

            //ACT
            await srv.ChangeKeyAsync(account);

            //ASSERT
            nonceCacheMock.Verify(method => method.Update(successResponse.Nonce), Times.Once());
        }
Beispiel #4
0
        public async Task CreateAccount_ShouldUpdateLastNonce()
        {
            //ARRANGE
            var acmeApiMock        = new Mock <IAcmeRestApi>();
            var directoryCacheMock = new Mock <ICachedRepository <AcmeDirectory> >();
            var nonceCacheMock     = new Mock <ICachedRepository <string> >();

            AcmeCreateAccount             inputAccount    = TestHelpers.CreateAccount;
            AcmeApiResponse <AcmeAccount> accountResponse = TestHelpers.AcmeAccountResponse;

            acmeApiMock.Setup(method => method.CreateAccountAsync(It.IsAny <AcmeDirectory>(), It.IsAny <string>(), It.IsAny <AcmeCreateAccount>()))
            .ReturnsAsync(accountResponse);

            AcmeAccountService srv = new AcmeAccountService(acmeApiMock.Object, directoryCacheMock.Object, nonceCacheMock.Object);

            //ACT
            await srv.CreateAsync(inputAccount);

            //ASSERT
            nonceCacheMock.Verify(method => method.Update(accountResponse.Nonce), Times.Once());
        }