public async Task ShouldRequestListFromTheApiWithOnlySomeParameters()
        {
            var client = Mock.Of <ApiClient>();

            IList <RegistrationGroup> groups = new List <RegistrationGroup>()
            {
                new RegistrationGroup(), new RegistrationGroup()
            };

            Mock.Get(client).Setup(c => c.GetList <RegistrationGroup>(
                                       "registration_groups",
                                       It.Is <ExpandoObject>(x => x.V("year_code") == null))).Returns(Task.FromResult(groups)).Verifiable();

            var registrationGroupResource = new RegistrationGroupsResource(client);
            var results = await registrationGroupResource.List();

            Assert.That(results.Count, Is.EqualTo(groups.Count));

            Mock.Get(client).VerifyAll();
        }
        public async Task ShouldRequestListFromTheApiWithAllParameters()
        {
            var client = Mock.Of <ApiClient>();

            IList <RegistrationGroup> registrationGroups = new List <RegistrationGroup>()
            {
                new RegistrationGroup(), new RegistrationGroup()
            };

            var yearCode = "a";

            Mock.Get(client).Setup(c => c.GetList <RegistrationGroup>(
                                       RegistrationGroupsResource.ResourceName,
                                       It.Is <ExpandoObject>(x =>
                                                             x.V <string>("year_code") == "a"))).Returns(Task.FromResult(registrationGroups)).Verifiable();

            var resource = new RegistrationGroupsResource(client);
            var results  = await resource.List(yearCode : yearCode);

            Assert.That(results.Count, Is.EqualTo(registrationGroups.Count));

            Mock.Get(client).VerifyAll();
        }