public void RegionsQueryAgentShouldReturnSpecificRecord()
        {
            using (var connection = new FTTConnection())
            {
                var persistedRegion = connection.Regions.FirstOrDefault(r => "NCR".Equals(r.Name, StringComparison.InvariantCultureIgnoreCase));
                Assert.IsNotNull(persistedRegion);

                var queryAgent = new RegionsQueryAgent(connection);
                var retrievedRegion = queryAgent.Get(persistedRegion.RegionId);
                Assert.IsNotNull(retrievedRegion);
            }
        }
        public void RegionsQueryAgentShouldReturnAllRecords()
        {
            using (var connection = new FTTConnection())
            {
                var persistedRegions = connection.Regions.ToList();
                Assert.IsTrue(persistedRegions.Any());

                var queryAgent = new RegionsQueryAgent(connection);
                var retrievedRegions = queryAgent.GetAll();
                Assert.IsNotNull(retrievedRegions);
                Assert.IsTrue(retrievedRegions.Any());
                Assert.AreEqual(persistedRegions.Count, retrievedRegions.Count);
            }
        }
        public void RegionsQueryAgentShouldReturnReferences()
        {
            using (var connection = new FTTConnection())
            {
                var queryAgent = new RegionsQueryAgent(connection);
                var references = queryAgent.GetReferences();

                var countries = references.GetType().GetProperty("Countries").GetValue(references, null) as ICollection<Country>;
                Assert.IsTrue(countries.Any());

                var islands = references.GetType().GetProperty("Islands").GetValue(references, null) as ICollection<Island>;
                Assert.IsTrue(islands.Any());
            }
        }
        public void RegionsQueryAgentShouldReturnSpecificRecords()
        {
            using (var connection = new FTTConnection())
            {
                var persistedRegions = connection.Regions
                                                 .Where(r => r.Name.StartsWith("Region"))
                                                 .ToList();

                Assert.IsTrue(persistedRegions.Any());

                var queryAgent = new RegionsQueryAgent(connection);
                var retrievedRegions = queryAgent.Get("regions.Name LIKE 'Region%'", "regions.Name");
                Assert.IsNotNull(retrievedRegions);
                Assert.IsTrue(retrievedRegions.Any());
                Assert.AreEqual(persistedRegions.Count, retrievedRegions.Count);
            }
        }