public void GetProductsForDeal()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new DealsClient(connection);

                var dealProductFilters = new DealProductFilters
                {
                    PageSize           = 1,
                    PageCount          = 1,
                    StartPage          = 0,
                    IncludeProductData = "1"
                };

                client.GetProductsForDeal(1, dealProductFilters);

                Received.InOrder(async() =>
                {
                    await connection.GetAll <DealProduct>(
                        Arg.Is <Uri>(u => u.ToString() == "deals/1/products"),
                        Arg.Is <Dictionary <string, string> >(d => d.Count == 1 &&
                                                              d["include_product_data"] == "1"),
                        Arg.Is <ApiOptions>(o => o.PageSize == 1 &&
                                            o.PageCount == 1 &&
                                            o.StartPage == 0));
                });
            }
            public async Task GetProductsForDeal()
            {
                var dealProductFilters = new DealProductFilters
                {
                    PageSize           = 2,
                    PageCount          = 1,
                    StartPage          = 0,
                    IncludeProductData = "1"
                };

                var pipedrive = Helper.GetAuthenticatedClient();
                var fixture   = pipedrive.Deal;

                var dealProducts = await fixture.GetProductsForDeal(1, dealProductFilters);

                Assert.Equal(2, dealProducts.Count);
                Assert.True(dealProducts.All(x => x.DealId == 1));
            }