Exemplo n.º 1
0
        public async Task TestAddressOnlyHasInvalidTransactionShouldReturnErrorCode()
        {
            var exceptionThrown = false;

            try
            {
                var invalidBundleOne = CreateBundle(new TryteString("999999999999999"));
                var invalidBundleTwo = CreateBundle(new TryteString("999999999999999"));

                var messenger = new Mock <IMessenger>();
                messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync(
                    new List <Message> {
                    new Message(invalidBundleOne.Transactions[0].ToTrytes()), new Message(invalidBundleTwo.Transactions[0].ToTrytes())
                });

                var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub(false));
                await repository.LoadContactInformationByAddressAsync(new Address());
            }
            catch (MessengerException exception)
            {
                exceptionThrown = true;
                Assert.AreEqual(ResponseCode.NoContactInformationPresent, exception.Code);
            }

            Assert.IsTrue(exceptionThrown);
        }
Exemplo n.º 2
0
        public async Task TestAddressHasInvalidTransactionsShouldBeSkippedAndReturnValidData()
        {
            var contactAddress = new Address(Seed.Random().Value);
            var ntruKey        = InMemoryContactRepository.NtruKeyPair.PublicKey;

            var publicKeyTrytes     = ntruKey.ToBytes().EncodeBytesAsString();
            var requestAdressTrytes = new TryteString(publicKeyTrytes + Constants.LineBreak + contactAddress.Value + Constants.End).Concat(new Fragment())
                                      .Concat(new Fragment());

            var invalidBundle = CreateBundle(new TryteString("999999999999999"));
            var validBundle   = CreateBundle(requestAdressTrytes);

            var messenger = new Mock <IMessenger>();

            messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync(
                new List <Message>
            {
                new Message(invalidBundle.Transactions[0].ToTrytes()),
                new Message(validBundle.Transactions.Aggregate(new TryteString(), (current, tryteString) => current.Concat(tryteString.Fragment)))
            });

            var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub());
            var contact    = await repository.LoadContactInformationByAddressAsync(new Address());

            Assert.AreEqual(contactAddress.Value, contact.ContactAddress.Value);
            Assert.AreEqual(ntruKey.ToString(), contact.PublicKey.ToString());
        }
Exemplo n.º 3
0
        public async Task TestAddressHasNoTransactionsShouldThrowExceptionWithErrorCode()
        {
            var exceptionThrown = false;

            try
            {
                var messenger = new Mock <IMessenger>();
                messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync(new List <Message>());

                var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub());
                await repository.LoadContactInformationByAddressAsync(new Address());
            }
            catch (MessengerException exception)
            {
                exceptionThrown = true;
                Assert.AreEqual(ResponseCode.NoContactInformationPresent, exception.Code);
            }

            Assert.IsTrue(exceptionThrown);
        }