public async Task RequestsCorrectUrl()
            {
                var connection = Substitute.For <IApiConnection>();
                var client     = new DealsClient(connection);

                var filters = new DealParticipantFilters
                {
                    PageSize  = 1,
                    PageCount = 1,
                    StartPage = 0,
                };

                await client.GetParticipants(123, filters);

                Received.InOrder(async() =>
                {
                    await connection.GetAll <DealParticipant>(
                        Arg.Is <Uri>(u => u.ToString() == "deals/123/participants"),
                        Arg.Is <Dictionary <string, string> >(d => d.Count == 1 &&
                                                              d["id"] == "123"),
                        Arg.Is <ApiOptions>(o => o.PageSize == 1 &&
                                            o.PageCount == 1 &&
                                            o.StartPage == 0));
                });
            }
            public async Task ReturnsCorrectCountWithoutStart()
            {
                var pipedrive = Helper.GetAuthenticatedClient();

                var options = new DealParticipantFilters
                {
                    PageSize  = 3,
                    PageCount = 1
                };

                var dealUpdates = await pipedrive.Deal.GetParticipants(4, options);

                Assert.Equal(3, dealUpdates.Count);
            }
            public async Task ReturnsDistinctInfosBasedOnStartPage()
            {
                var pipedrive = Helper.GetAuthenticatedClient();

                var startOptions = new DealParticipantFilters
                {
                    PageSize  = 1,
                    PageCount = 1
                };

                var firstPage = await pipedrive.Deal.GetParticipants(4, startOptions);

                var skipStartOptions = new DealParticipantFilters
                {
                    PageSize  = 1,
                    PageCount = 1,
                    StartPage = 1
                };

                var secondPage = await pipedrive.Deal.GetParticipants(4, skipStartOptions);

                Assert.NotEqual(firstPage[0].PersonId, secondPage[0].PersonId);
            }