public void GetAllBlocks_RetrunListOfBlocks() { //Arrange IBlockChainGetRepository getAllBlocks = new BlockChainRepository(); //Act var result = getAllBlocks.GetAllBlocks(); //Assert Assert.That(result, !Is.Null); }
public void TransactionsHistory_ValidValues() { bool workProccess = false; IBlockChainRepository blockChainRepository = new BlockChainRepository(); ModelStateDictionary modelState = new ModelStateDictionary(); IBlockChainService blockChainService = new BlockChainService(new ModelStateWrapper(modelState), blockChainRepository); BlockChain blockChain = BlockChain.Instance(blockChainService); User user = new User { Email = "*****@*****.**", FirstName = "Amir", LastName = "Akobirovich", MiddleName = "Rofeev", Login = "******", Money = 0, Password = "******", RepeatPassword = "******", WalletID = "WalletID" }; blockChain.AddTransaction(new Transactions { Amount = 1231, DateTime = DateTime.Now, FromUser = user.Login, ToUser = "******", TransactionID = 13 }); blockChain.AddTransaction(new Transactions { Amount = 32, DateTime = DateTime.Now, FromUser = "******", ToUser = user.Login, TransactionID = 14 }); MoneySend moneySend = new MoneySend { Amount = 100, UserName = user.Login, WalletId = user.WalletID }; blockChain.BuyCoins(moneySend); Thread.Sleep(35000); IEnumerable <Transactions> transactionsHistory = blockChain.TransactionsHistory(user); foreach (var transaction in transactionsHistory) { workProccess = Equals(transaction.FromUser, user.Login) || Equals(transaction.ToUser, user.Login); } Assert.IsTrue(workProccess); }
static void Main(string[] args) { IBlockChainRepository blockChain = new BlockChainRepository(); blockChain.AddBlock(new Block { Index = 1, TimeStamp = Convert.ToDateTime("2019-01-03"), Data = "{'description':'ABC','value':50}" }); blockChain.AddBlock(new Block { Index = 2, TimeStamp = Convert.ToDateTime("2019-01-04"), Data = "{'description':'DEF','value':99}" }); foreach (var item in blockChain.GetAllBlocks()) { Console.WriteLine(item.Index + "\n" + item.TimeStamp + "\n" + item.Data + "\n" + item.PreviousHash + "\n" + item.Hash); Console.WriteLine("----------------"); } }
public void AddBlockIntoBlockChain_AddNewBlock_ReturnTrue() { //Arrange IBlockChainAddRepository addNewBlock = new BlockChainRepository(); //Act var result = addNewBlock.AddBlockIntoBlockChain(new BlockChain.Dto.BlockDto { Data = "{Amount=4}" }); result = addNewBlock.AddBlockIntoBlockChain(new BlockChain.Dto.BlockDto { Data = "{Amount=4}" }); result = addNewBlock.AddBlockIntoBlockChain(new BlockChain.Dto.BlockDto { Data = "{Amount=4}" }); //Assert Assert.That(result, Is.True); }
public void TransactionsHistory_MultyValidValues() { bool workProccess = false; IBlockChainRepository blockChainRepository = new BlockChainRepository(); ModelStateDictionary modelState = new ModelStateDictionary(); IBlockChainService blockChainService = new BlockChainService(new ModelStateWrapper(modelState), blockChainRepository); BlockChain blockChain = BlockChain.Instance(blockChainService); var users = new User[100]; for (int i = 0; i < users.Length; i++) { users[i] = new User { Email = "*****@*****.**", FirstName = "Amir", LastName = "Akobirovich", MiddleName = "Rofeev", Login = new Random().GetHashCode().ToString(), Money = 0, Password = "******", RepeatPassword = "******", WalletID = "WalletID" }; } var usersActions = new Task[100]; for (int i = 0; i < users.Length; i++) { Task.Run(() => { blockChain.AddTransaction(new Transactions { Amount = 1231, DateTime = DateTime.Now, FromUser = users[i].Login, ToUser = "******", TransactionID = 13 }); blockChain.AddTransaction(new Transactions { Amount = 32, DateTime = DateTime.Now, FromUser = "******", ToUser = users[i].Login, TransactionID = 14 }); MoneySend moneySend = new MoneySend { Amount = 100, UserName = users[i].Login, WalletId = users[i].WalletID }; blockChain.BuyCoins(moneySend); }).Wait(); } Thread.Sleep(35000); foreach (var user in users) { IEnumerable <Transactions> transactionsHistory = blockChain.TransactionsHistory(user); foreach (var transaction in transactionsHistory) { workProccess = Equals(transaction.FromUser, user.Login) || Equals(transaction.ToUser, user.Login); } } Assert.IsTrue(workProccess); }