Mercurial > pub > bltoolkit
comparison UnitTests/CS/Mapping/MetadataProvider/MetadataProviderTest.cs @ 0:f990fcb411a9
Копия текущей версии из github
| author | cin |
|---|---|
| date | Thu, 27 Mar 2014 21:46:09 +0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:f990fcb411a9 |
|---|---|
| 1 using System; | |
| 2 | |
| 3 using NUnit.Framework; | |
| 4 | |
| 5 using BLToolkit.Data; | |
| 6 using BLToolkit.Reflection; | |
| 7 using BLToolkit.Reflection.Extension; | |
| 8 using BLToolkit.Reflection.MetadataProvider; | |
| 9 | |
| 10 namespace Mapping.MetadataProvider | |
| 11 { | |
| 12 [TestFixture] | |
| 13 public class MetadataProviderTest | |
| 14 { | |
| 15 class CustomMetadataProvider : MetadataProviderBase | |
| 16 { | |
| 17 public override string GetFieldName(TypeExtension typeExtension, MemberAccessor member, out bool isSet) | |
| 18 { | |
| 19 string name = string.Empty; | |
| 20 | |
| 21 foreach (char c in member.Name) | |
| 22 { | |
| 23 if (char.IsUpper(c)) | |
| 24 { | |
| 25 if (name.Length > 0) | |
| 26 name += '_'; | |
| 27 name += c; | |
| 28 } | |
| 29 else | |
| 30 { | |
| 31 name += char.ToUpper(c); | |
| 32 } | |
| 33 } | |
| 34 | |
| 35 isSet = true; | |
| 36 | |
| 37 return name; | |
| 38 } | |
| 39 } | |
| 40 | |
| 41 public class Person | |
| 42 { | |
| 43 public string FirstName; | |
| 44 public string LastName; | |
| 45 } | |
| 46 | |
| 47 static void MapMetadataProvider_OnCreateProvider(MetadataProviderBase parentProvider) | |
| 48 { | |
| 49 parentProvider.AddProvider(new CustomMetadataProvider()); | |
| 50 } | |
| 51 | |
| 52 [Test] | |
| 53 public void Test() | |
| 54 { | |
| 55 MetadataProviderBase.OnCreateProvider += MapMetadataProvider_OnCreateProvider; | |
| 56 | |
| 57 string cmd = "SELECT '1' as FIRST_NAME, '2' as LAST_NAME"; | |
| 58 #if ORACLE || FIREBIRD | |
| 59 cmd += " FROM dual"; | |
| 60 #endif | |
| 61 using (DbManager db = new DbManager()) | |
| 62 { | |
| 63 Person p = (Person)db | |
| 64 .SetCommand(cmd) | |
| 65 .ExecuteObject(typeof(Person)); | |
| 66 | |
| 67 Assert.AreEqual("1", p.FirstName); | |
| 68 Assert.AreEqual("2", p.LastName); | |
| 69 } | |
| 70 } | |
| 71 | |
| 72 [TearDown] | |
| 73 public void TearDown() | |
| 74 { | |
| 75 MetadataProviderBase.OnCreateProvider -= MapMetadataProvider_OnCreateProvider; | |
| 76 } | |
| 77 } | |
| 78 } |
