public void IslandsQueryAgentShouldReturnReferences()
 {
     using (var connection = new FTTConnection())
     {
         var queryAgent = new IslandsQueryAgent(connection);
         var references = queryAgent.GetReferences();
         var countries = references.GetType().GetProperty("Countries").GetValue(references, null) as ICollection<Country>;
         Assert.IsTrue(countries.Any());
     }
 }
        public void IslandsQueryAgentShouldReturnSpecificRecord()
        {
            using (var connection = new FTTConnection())
            {
                var persistedIsland = connection.Islands.FirstOrDefault(i => "Luzon".Equals(i.Name, StringComparison.InvariantCultureIgnoreCase));
                Assert.IsNotNull(persistedIsland);

                var queryAgent = new IslandsQueryAgent(connection);
                var retrievedIsland = queryAgent.Get(persistedIsland.IslandId);
                Assert.IsNotNull(retrievedIsland);
            }
        }
        public void IslandsQueryAgentShouldReturnAllRecords()
        {
            using (var connection = new FTTConnection())
            {
                var persistedIslands = connection.Islands.ToList();
                Assert.IsTrue(persistedIslands.Any());

                var queryAgent = new IslandsQueryAgent(connection);
                var retrievedIslands = queryAgent.GetAll();
                Assert.IsNotNull(retrievedIslands);
                Assert.IsTrue(retrievedIslands.Any());
                Assert.AreEqual(persistedIslands.Count, retrievedIslands.Count);
            }
        }
        public void IslandsQueryAgentShouldReturnSpecificRecords()
        {
            using (var connection = new FTTConnection())
            {
                var persistedIslands = connection.Islands
                                                 .Where(i => i.Name.StartsWith("L"))
                                                 .ToList();

                Assert.IsTrue(persistedIslands.Any());

                var queryAgent = new IslandsQueryAgent(connection);
                var retrievedIslands = queryAgent.Get("islands.Name LIKE 'L%'", "islands.Name");
                Assert.IsNotNull(retrievedIslands);
                Assert.IsTrue(retrievedIslands.Any());
                Assert.AreEqual(persistedIslands.Count, retrievedIslands.Count);
            }
        }