public void AutoMapUnspecifiedTargets()
 {
     //automap should always automap:
     var map = new DataReaderAutoMap<User>();
     map.AutoMapUnspecifiedTargets = false;
     Assert.AreEqual(true, map.AutoMapUnspecifiedTargets);
 }
示例#2
0
        public void AutoMapUnspecifiedTargets()
        {
            //automap should always automap:
            var map = new DataReaderAutoMap <User>();

            map.AutoMapUnspecifiedTargets = false;
            Assert.AreEqual(true, map.AutoMapUnspecifiedTargets);
        }
示例#3
0
        public void CreateTargetList_WithSql_Static()
        {
            IEnumerable <User> targetUsers = null;

            using (var sourceUsers = GetSqlDataReader())
            {
                targetUsers = DataReaderAutoMap <User> .CreateTargetList(sourceUsers);
            }
            AssertUsers(targetUsers);
        }
示例#4
0
        public void PopulateTarget_WithSql_Static()
        {
            User targetUser = new User();

            using (var sourceUsers = GetSqlDataReader())
            {
                sourceUsers.Read();
                DataReaderAutoMap <User> .PopulateTarget(sourceUsers, targetUser);
            }
            AssertFirstUser(targetUser);
        }
示例#5
0
        public void CreateList_WithSql_WithCache()
        {
            IEnumerable <User> targetUsers = null;

            using (var sourceUsers = GetSqlDataReader())
            {
                var map = new DataReaderAutoMap <User>().Cache <DictionaryCachingStrategy>();
                map.ThrowMappingExceptions = true;
                targetUsers = map.CreateList(sourceUsers);
            }
            AssertUsers(targetUsers);
        }
示例#6
0
        public void Create_MultipleReaders_NoException()
        {
            List <User> users = null;

            using (var addressReader = GetAddressSqlDataReader())
            {
                using (var userReader = GetUserSqlDataReader())
                {
                    var map = new DataReaderAutoMap <User>();
                    users = map.CreateList(userReader, addressReader);
                    //should return null - multiple readers not allowed
                    Assert.AreEqual(null, users);
                }
            }
        }
        public void Create_WithAggressiveNameMatching()
        {
            var id = RandomGuid();
            var firstName = RandomGuidString();
            var lastName = RandomGuidString();

            var reader = GetStubReader(id, firstName, lastName);
            var user = new DataReaderAutoMap<User>().Matching<AggressiveNameMatchingStrategy>().Create(reader);

            //"Id" will not match "USERID" will not match with aggressive strategy:
            Assert.IsNotNull(user);
            Assert.AreEqual(new Guid(), user.Id);
            Assert.AreEqual(firstName, user.FirstName);
            Assert.AreEqual(lastName, user.LastName);
        }
示例#8
0
        public void Create_WithAggressiveNameMatching()
        {
            var id        = RandomGuid();
            var firstName = RandomGuidString();
            var lastName  = RandomGuidString();

            var reader = GetStubReader(id, firstName, lastName);
            var user   = new DataReaderAutoMap <User>().Matching <AggressiveNameMatchingStrategy>().Create(reader);

            //"Id" will not match "USERID" will not match with aggressive strategy:
            Assert.IsNotNull(user);
            Assert.AreEqual(new Guid(), user.Id);
            Assert.AreEqual(firstName, user.FirstName);
            Assert.AreEqual(lastName, user.LastName);
        }
示例#9
0
        public void CreateList_MultipleReaders()
        {
            List <User> users = null;

            using (var addressReader = GetAddressSqlDataReader())
            {
                using (var userReader = GetUserSqlDataReader())
                {
                    var map = new DataReaderAutoMap <User>();
                    map.ThrowMappingExceptions = true;
                    users = map.CreateList(userReader, addressReader);
                    //should error - multiple readers not allowed
                    Assert.Fail();
                }
            }
        }
        public void Create_WithLegacyNameMatching()
        {
            var id = RandomGuid();
            var firstName = RandomGuidString();
            var lastName = RandomGuidString();

            var stubReader = GetLegacyStubReader(id, firstName, lastName);

            var map = new DataReaderAutoMap<User>().Matching<LegacyNameMatchingStrategy>();
            User user = map.Create(stubReader);

            Assert.IsNotNull(user);
            Assert.AreEqual(id, user.Id);
            Assert.AreEqual(firstName, user.FirstName);
            Assert.AreEqual(lastName, user.LastName);
        }
示例#11
0
        public void Create_WithLegacyNameMatching()
        {
            var id        = RandomGuid();
            var firstName = RandomGuidString();
            var lastName  = RandomGuidString();

            var stubReader = GetLegacyStubReader(id, firstName, lastName);

            var  map  = new DataReaderAutoMap <User>().Matching <LegacyNameMatchingStrategy>();
            User user = map.Create(stubReader);

            Assert.IsNotNull(user);
            Assert.AreEqual(id, user.Id);
            Assert.AreEqual(firstName, user.FirstName);
            Assert.AreEqual(lastName, user.LastName);
        }
示例#12
0
        public void Create_AutoMap_Sql_SpecifyFunc()
        {
            User user = null;

            using (var reader = GetSqlDataReader())
            {
                reader.Read();
                var addressMap = new DataReaderAutoMap <Address>()
                                 .Specify("PostCode", t => t.PostCode.Code);
                var map = new DataReaderAutoMap <User>()
                          .Specify("UserId", t => t.Id)
                          .Specify((s, t) => t.Address = addressMap.Create(s));
                user = map.Create(reader);
            }
            AssertFirstUser(user, true, true);
        }
示例#13
0
 public void Performance_AutoMap_Sql()
 {
     using (var reader = GetSqlDataReader())
     {
         reader.Read();
         var addressMap = new DataReaderAutoMap <Address>()
                          .Specify((s, t) => t.PostCode.Code = (string)s["PostCode"]);
         var map = new DataReaderAutoMap <User>()
                   .Specify("UserId", t => t.Id)
                   .Specify((s, t) => t.Address = addressMap.Create(s));
         for (int i = 0; i < PerformanceIterations; i++)
         {
             var user = map.Create(reader);
         }
     }
 }
示例#14
0
        public void Create_NestedMaps_WithConversion()
        {
            Address address = null;

            using (var addressReader = GetAddressSqlDataReader())
            {
                addressReader.Read();
                var addressMap = new DataReaderAutoMap <Address>()
                                 .Specify <string, string>("PostCode", t => t.PostCode.Code, c => c.ToLower());
                address = addressMap.Create(addressReader);
            }
            using (var sourceUsers = GetSqlDataReader())
            {
                Assert.IsTrue(sourceUsers.Read());
                Assert.IsNotNull(address);
                Assert.IsNotNull(address.PostCode);
                Assert.AreEqual((string)sourceUsers["PostCode"].ToString().ToLower(), address.PostCode.OriginalCode);
            }
        }
示例#15
0
        public void Create_NestedMaps()
        {
            User user = null;

            using (var addressReader = GetAddressSqlDataReader())
            {
                addressReader.Read();
                using (var userReader = GetUserSqlDataReader())
                {
                    userReader.Read();
                    var addressMap = new DataReaderAutoMap <Address>()
                                     .Specify("PostCode", t => t.PostCode.Code);
                    var map = new DataReaderAutoMap <User>()
                              .Specify("UserId", t => t.Id)
                              .Specify((s, t) => t.Address = addressMap.Create(addressReader));
                    user = map.Create(userReader);
                }
            }
            AssertFirstUser(user, true, true);
        }
        public void FromSqlCe_AutoMap()
        {
            var stopwatch = Stopwatch.StartNew();
            var count     = 0;
            var userMap   = new DataReaderAutoMap <User>()
                            .Specify("UserId", t => t.Id)
                            .Specify("Line1", t => t.Address.Line1)
                            .Specify("Line2", t => t.Address.Line2)
                            .Specify("PostCode", t => t.Address.PostCode.Code);

            using (var reader = GetSqlDataReader())
            {
                while (reader.Read() && count < PerformanceIterations)
                {
                    count++;
                    var user = userMap.Create(reader);
                    AssertUser(reader, user, true, true);
                }
            }
            Debug.WriteLine("FromSqlCe_AutoMap -Mapped: {0} objects and asserted 0 failures in: {1}ms", PerformanceIterations, stopwatch.ElapsedMilliseconds);
        }
        public void FromSqlCe_AutoMap()
        {
            var stopwatch = Stopwatch.StartNew();
            var count = 0;
            var userMap = new DataReaderAutoMap<User>()
                            .Specify("UserId", t => t.Id)
                            .Specify("Line1", t => t.Address.Line1)
                            .Specify("Line2", t => t.Address.Line2)
                            .Specify("PostCode", t => t.Address.PostCode.Code);

            using (var reader = GetSqlDataReader())
            {
                while (reader.Read() && count < PerformanceIterations)
                {
                    count++;
                    var user = userMap.Create(reader);
                    AssertUser(reader, user, true, true);
                }
            }
            Debug.WriteLine("FromSqlCe_AutoMap -Mapped: {0} objects and asserted 0 failures in: {1}ms", PerformanceIterations, stopwatch.ElapsedMilliseconds);
        }
示例#18
0
        public void PopulateList()
        {
            //populate clears down the list, check with a dummy entry:
            var dummyId     = RandomGuid();
            var targetUsers = new List <User>();

            targetUsers.Add(new User()
            {
                Id = dummyId
            });
            using (var sourceUsers = GetSqlDataReader())
            {
                var map = new DataReaderAutoMap <User>();
                map.PopulateList(targetUsers, sourceUsers);
            }
            var dummy = (from t in targetUsers
                         where t.Id == dummyId
                         select t).SingleOrDefault();

            Assert.IsNull(dummy);
            AssertUsers(targetUsers);
        }
示例#19
0
        public void AppendList()
        {
            //append adds to the list, check with a dummy entry:
            var dummyId     = RandomGuid();
            var targetUsers = new List <User>();

            targetUsers.Add(new User()
            {
                Id = dummyId
            });
            using (var sourceUsers = GetSqlDataReader())
            {
                var map = new DataReaderAutoMap <User>();
                map.AppendList(targetUsers, sourceUsers);
            }
            var dummy = (from t in targetUsers
                         where t.Id == dummyId
                         select t).SingleOrDefault();

            Assert.IsNotNull(dummy);
            //remove the dummy and check the mapped entires:
            targetUsers.Remove(dummy);
            AssertUsers(targetUsers);
        }
 public void AppendList()
 {
     //append adds to the list, check with a dummy entry:
     var dummyId = RandomGuid();
     var targetUsers = new List<User>();
     targetUsers.Add(new User() { Id = dummyId });
     using (var sourceUsers = GetSqlDataReader())
     {
         var map = new DataReaderAutoMap<User>();
         map.AppendList(targetUsers, sourceUsers);
     }
     var dummy = (from t in targetUsers
                  where t.Id == dummyId
                  select t).SingleOrDefault();
     Assert.IsNotNull(dummy);
     //remove the dummy and check the mapped entires:
     targetUsers.Remove(dummy);
     AssertUsers(targetUsers);
 }   
 public void Create_AutoMap_Sql_SpecifyFunc()
 {
     User user = null;
     using (var reader = GetSqlDataReader())
     {
         reader.Read();
         var addressMap = new DataReaderAutoMap<Address>()
                                 .Specify("PostCode", t => t.PostCode.Code);
         var map = new DataReaderAutoMap<User>()
                         .Specify("UserId", t => t.Id)
                         .Specify((s, t) => t.Address = addressMap.Create(s));
         user = map.Create(reader);
     }
     AssertFirstUser(user, true, true);
 }
 public void CreateList_MultipleReaders()
 {
     List<User> users = null;
     using (var addressReader = GetAddressSqlDataReader())
     {
         using (var userReader = GetUserSqlDataReader())
         {
             var map = new DataReaderAutoMap<User>();
             map.ThrowMappingExceptions = true;
             users = map.CreateList(userReader, addressReader);
             //should error - multiple readers not allowed
             Assert.Fail();
         }
     }            
 }
 public void Create_MultipleReaders_NoException()
 {
     List<User> users = null;
     using (var addressReader = GetAddressSqlDataReader())
     {
         using (var userReader = GetUserSqlDataReader())
         {
             var map = new DataReaderAutoMap<User>();
             users = map.CreateList(userReader, addressReader);
             //should return null - multiple readers not allowed
             Assert.AreEqual(null, users);
         }
     }
 }
 public void Create_NestedMaps()
 {
     User user = null;
     using (var addressReader = GetAddressSqlDataReader())
     {
         addressReader.Read();
         using (var userReader = GetUserSqlDataReader())
         {
             userReader.Read();
             var addressMap = new DataReaderAutoMap<Address>()
                                      .Specify("PostCode", t => t.PostCode.Code);
             var map = new DataReaderAutoMap<User>()
                             .Specify("UserId", t => t.Id)
                             .Specify((s, t) => t.Address = addressMap.Create(addressReader));
             user = map.Create(userReader);
         }                
     }
     AssertFirstUser(user, true, true);
 }
 public void Create_NestedMaps_WithConversion()
 {
     Address address = null;
     using (var addressReader = GetAddressSqlDataReader())
     {
         addressReader.Read();
         var addressMap = new DataReaderAutoMap<Address>()
                                  .Specify<string, string>("PostCode", t => t.PostCode.Code, c => c.ToLower());
         address = addressMap.Create(addressReader);
     }
     using (var sourceUsers = GetSqlDataReader())
     {
         Assert.IsTrue(sourceUsers.Read());
         Assert.IsNotNull(address);
         Assert.IsNotNull(address.PostCode);
         Assert.AreEqual((string)sourceUsers["PostCode"].ToString().ToLower(), address.PostCode.OriginalCode);
     }
 }
 public void CreateList_WithSql_WithCache()
 {
     IEnumerable<User> targetUsers = null;
     using (var sourceUsers = GetSqlDataReader())
     {
         var map = new DataReaderAutoMap<User>().Cache<DictionaryCachingStrategy>();
         map.ThrowMappingExceptions = true;
         targetUsers = map.CreateList(sourceUsers);
     }
     AssertUsers(targetUsers);
 }
示例#27
0
 public void Performance_AutoMap_Sql()
 {
     using (var reader = GetSqlDataReader())
     {
         reader.Read();
         var addressMap = new DataReaderAutoMap<Address>()
                                 .Specify((s, t) => t.PostCode.Code = (string)s["PostCode"]);
         var map = new DataReaderAutoMap<User>()
                         .Specify("UserId", t => t.Id)
                         .Specify((s, t) => t.Address = addressMap.Create(s));
         for (int i = 0; i < PerformanceIterations; i++)
         {
             var user = map.Create(reader);
         }
     }
 }
 public void PopulateList()
 {
     //populate clears down the list, check with a dummy entry:
     var dummyId = RandomGuid();
     var targetUsers = new List<User>();
     targetUsers.Add(new User() { Id = dummyId });
     using (var sourceUsers = GetSqlDataReader())
     {
         var map = new DataReaderAutoMap<User>();
         map.PopulateList(targetUsers, sourceUsers);
     }
     var dummy = (from t in targetUsers
                  where t.Id == dummyId
                  select t).SingleOrDefault();
     Assert.IsNull(dummy);
     AssertUsers(targetUsers);
 }