예제 #1
0
        public void Order()
        {
            Profile account = users[0];

            //ERC223
            items[0].Metadata.Set <BigInteger>("Balance", 20);
            var success = BCExchangeService.Order(account, items[0], items[1], 0xFFFFFFF).Result;

            Assert.True(success);

            Thread.Sleep(3000);

            var orders = ListOrders(items[0], items[1], users[0]);

            Assert.NotEmpty(orders);

            //ERC721
            items[0].Metadata.Set <BigInteger>("Balance", 20);
            success = BCExchangeService.Order(account, items[0], items[2], 0xFFFFFFF).Result;
            Assert.True(success);

            Thread.Sleep(3000);

            orders = ListOrders(items[0], items[2], users[0]);
            Assert.NotEmpty(orders);
        }
예제 #2
0
        public void Withdraw()
        {
            //ERC721
            Profile account = users[1];
            var     success = BCExchangeService.Withdraw(account, items[2]).Result;

            Assert.True(success);

            //withdraw non-existing tokens
            success = BCExchangeService.Withdraw(account, items[2]).Result;
            Assert.False(success);

            //ERC223
            success = BCExchangeService.Withdraw(account, items[1]).Result;
            Assert.True(success);

            account = users[0];

            items[0].Metadata.Set <BigInteger>("Balance", 40);
            success = BCExchangeService.Withdraw(account, items[0]).Result;
            Assert.True(success);

            var items0 = HoardExchangeFixture.GetGameItems(users[0]).Result;

            Assert.Single(items0);

            var items1 = HoardExchangeFixture.GetGameItems(users[1]).Result;

            Assert.Equal(4, items1.Count);
        }
예제 #3
0
        public void Trade()
        {
            Profile account = users[1];

            //ERC223
            var orders = ListOrders(items[0], items[1], users[0]);

            Assert.NotEmpty(orders);

            orders[0].amount = orders[0].amountGet / 2;
            var success = BCExchangeService.Trade(account, orders[0]).Result;

            Assert.False(success);

            orders[0].amount = orders[0].amountGet;
            success          = BCExchangeService.Trade(account, orders[0]).Result;
            Assert.True(success);

            //trade non-existing order
            success = BCExchangeService.Trade(account, orders[0]).Result;
            Assert.False(success);

            //ERC721
            orders = ListOrders(items[0], items[2], users[0]);
            Assert.NotEmpty(orders);

            orders[0].amount = orders[0].amountGet / 2;
            success          = BCExchangeService.Trade(account, orders[0]).Result;
            Assert.False(success);

            orders[0].amount = orders[0].amountGet;
            success          = BCExchangeService.Trade(account, orders[0]).Result;
            Assert.True(success);
        }
예제 #4
0
        public HoardExchangeFixture()
        {
            base.Initialize(HoardGameTestName);

            Users = GetUsers();

            RunExchangeServer();

            BCExchangeService = new BCExchangeService(HoardService);
            BCExchangeService.Init().Wait();

            HoardExchangeService = new HoardExchangeService(HoardService);
            HoardExchangeService.Init().Wait();

            try
            {
                GameIDs = HoardService.GetAllHoardGames().Result;
                foreach (var game in GameIDs)
                {
                    HoardService.RegisterHoardGame(game);
                }
            }
            catch (Exception)
            {
                Assert.True(false);
            }

            Items = GetGameItems(Users[0]).Result;
            Assert.Equal(3, Items.Count);
            Assert.True(Items[0].Metadata is ERC223GameItemContract.Metadata);
            Assert.True(Items[1].Metadata is ERC223GameItemContract.Metadata);
            Assert.True(Items[2].Metadata is ERC721GameItemContract.Metadata);
        }
예제 #5
0
        public void CancelOrder()
        {
            Profile account = users[1];

            //ERC223
            items[0].Metadata.Set <BigInteger>("Balance", 20);
            var success = BCExchangeService.Order(account, items[0], items[1], 0xFFFFFFF).Result;

            Assert.True(success);

            //ERC721
            items[0].Metadata.Set <BigInteger>("Balance", 20);
            success = BCExchangeService.Order(account, items[0], items[2], 0xFFFFFFF).Result;
            Assert.True(success);

            Thread.Sleep(3000);

            var orders = ListOrders(items[0], items[1], users[1]);

            Assert.True(orders.Length == 2);

            success = BCExchangeService.CancelOrder(account, orders[0]).Result;
            Assert.True(success);

            Thread.Sleep(3000);

            //FIXME is it correct?
            //cancel non-existing order
            success = BCExchangeService.CancelOrder(account, orders[0]).Result;
            Assert.True(success);

            Thread.Sleep(3000);

            orders = ListOrders(items[0], items[1], users[1]);
            Assert.True(orders.Length == 1);

            orders = ListOrders(items[0], items[2], users[1]);
            Assert.True(orders.Length == 1);

            success = BCExchangeService.CancelOrder(account, orders[0]).Result;
            Assert.True(success);

            Thread.Sleep(3000);

            orders = ListOrders(items[0], items[2], users[1]);
            Assert.True(orders.Length == 0);
        }
예제 #6
0
        public void Deposit()
        {
            //ERC223
            Profile account = users[0];
            var     success = BCExchangeService.Deposit(account, items[1], 1).Result;

            Assert.True(success);

            //deposit non-existing items
            success = BCExchangeService.Deposit(account, items[1], 1).Result;
            Assert.False(success);

            account = users[1];
            success = BCExchangeService.Deposit(account, items[0], 1000).Result;
            Assert.True(success);

            //ERC721
            account = users[0];
            success = BCExchangeService.Deposit(account, items[2], 1).Result;
            Assert.True(success);
        }