Ejemplo n.º 1
0
        private EditorTimeoutWaiter LoadProductVariantsFromShop()
        {
            var waiter = new EditorTimeoutWaiter(8f);

            _shopController.Client.products((products, error, after) => {
                _variants = new List <ProductVariant>();
                _product  = products[0];
                foreach (var product in products)
                {
                    _variants.AddRange(product.variants().edges().Select((x) => x.node()));
                }

                waiter.Complete();
            });

            return(waiter);
        }
        public IEnumerator TestShowPropogatesErrorsToShopOnError()
        {
            _controller.ProductGID = "notevenclose";
            _controller.Load();

            var waiter = new EditorTimeoutWaiter();

            _shop.When((x) => {
                x.OnError(Arg.Any <ShopifyError>());
            }).Do((x) => {
                var error = x.Args()[0] as ShopifyError;
                Assert.AreEqual(ShopifyError.ErrorType.GraphQL, error.Type);
                waiter.Complete();
            });

            while (!waiter.Await())
            {
                yield return(null);
            }

            _shop.DidNotReceive().OnProductLoaded(Arg.Any <Product>(), Arg.Any <ProductVariant[]>());
        }
        public IEnumerator TestLoadLoadsProductAndTellsShop()
        {
            _controller.ProductGID = "Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0Lzk4OTUyODE0NzU=";
            _controller.Load();

            var waiter = new EditorTimeoutWaiter();

            _shop.When((x) => {
                x.OnProductLoaded(Arg.Any <Product>(), Arg.Any <ProductVariant[]>());
            }).Do((x) => {
                var product         = x.Args()[0] as Product;
                var productVariants = x.Args()[1] as ProductVariant[];

                Assert.AreEqual("Arena Zip Boot", product.title());
                Assert.AreEqual(10, productVariants.Length);

                waiter.Complete();
            });

            while (waiter.Await())
            {
                yield return(null);
            }
        }