Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Persistence/3.3/Tests/StorableAttributeTests.cs @ 3623

Last change on this file since 3623 was 3057, checked in by epitzer, 15 years ago

Fix warnings (#915)

File size: 2.7 KB
Line 
1using System;
2using System.Collections.Generic;
3using HeuristicLab.Persistence.Core;
4using Microsoft.VisualStudio.TestTools.UnitTesting;
5using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
6using System.Reflection;
7
8namespace HeuristicLab.Persistence_33.Tests {
9
10  [StorableClass]
11  class DemoClass {
12
13    [Storable(Name = "TestProperty", DefaultValue = 12)]
14    public object o = null;
15
16    [Storable]
17    public int x = 2;
18
19    public int y = 0;
20  }
21
22  [StorableClass]
23  class Base {
24    public string baseName;
25    [Storable]
26    public virtual string Name {
27      get { return "Base"; }
28      set { baseName = value; }
29    }
30  }
31
32  [StorableClass]
33  class Override : Base {
34    [Storable]
35    public override string Name {
36      get { return "Override"; }
37      set { base.Name = value; }
38    }
39  }
40
41  [StorableClass]
42  class Intermediate : Override {
43  }
44
45  [StorableClass]
46  class New : Intermediate {
47    public string newName;
48    [Storable]
49    public new string Name {
50      get { return "New"; }
51      set { newName = value; }
52    }
53  }
54
55/*  [TestClass]
56  public class AttributeTest {
57
58    [TestMethod]
59    public void SimpleStorableAttributeTest() {
60      DemoClass t = new DemoClass();
61      IEnumerable<DataMemberAccessor> accessorList = StorableAttribute.GetStorableAccessors(t);
62      Dictionary<string, DataMemberAccessor> accessors = new Dictionary<string, DataMemberAccessor>();
63      foreach (var a in accessorList)
64        accessors.Add(a.Name, a);
65      Assert.IsTrue(accessors.ContainsKey("TestProperty"));
66      Assert.IsTrue(accessors.ContainsKey("x"));
67      Assert.IsFalse(accessors.ContainsKey("y"));
68      object o = new object();
69      t.o = o;
70      Assert.AreSame(accessors["TestProperty"].Get(), o);
71      t.x = 12;
72      Assert.AreEqual(accessors["x"].Get(), 12);
73      t.y = 312890;
74      accessors["TestProperty"].Set(null);
75      Assert.IsNull(t.o);
76      accessors["x"].Set(123);
77      Assert.AreEqual(t.x, 123);
78    }
79
80    [TestMethod]
81    public void TestInheritance() {
82      New n = new New();
83      var accessors = StorableAttribute.GetStorableAccessors(n);
84      var accessDict = new Dictionary<string, DataMemberAccessor>();
85      foreach (var accessor in accessors) // assert uniqueness
86        accessDict.Add(accessor.Name, accessor);
87      Assert.IsTrue(accessDict.ContainsKey(typeof(New).FullName + ".Name"));
88      Assert.IsTrue(accessDict.ContainsKey(typeof(Override).FullName + ".Name"));
89      Assert.AreEqual("New", accessDict[typeof(New).FullName + ".Name"].Get());
90      Assert.AreEqual("Override", accessDict[typeof(Override).FullName + ".Name"].Get());
91    }
92
93  }*/
94
95}
Note: See TracBrowser for help on using the repository browser.