diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch) | |
tree | 67208f7c145782a7e90b123b982ca78d88cc2c87 /akregator/src/mk4storage/metakit/tests/tformat.cpp | |
download | tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'akregator/src/mk4storage/metakit/tests/tformat.cpp')
-rw-r--r-- | akregator/src/mk4storage/metakit/tests/tformat.cpp | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/akregator/src/mk4storage/metakit/tests/tformat.cpp b/akregator/src/mk4storage/metakit/tests/tformat.cpp new file mode 100644 index 000000000..ba6e92549 --- /dev/null +++ b/akregator/src/mk4storage/metakit/tests/tformat.cpp @@ -0,0 +1,306 @@ +// tformat.cpp -- Regression test program, (re-)format tests +// $Id$ +// This is part of Metakit, see http://www.equi4.com/metakit/ + +#include "regress.h" + +void TestFormat() +{ + B(f01, Add view to format, 0) W(f01a); + { + c4_IntProp p1 ("p1"); + c4_IntProp p2 ("p2"); + { + c4_Storage s1 ("f01a", 1); + s1.SetStructure("a[p1:I]"); + + c4_View v1 = s1.View("a"); + v1.Add(p1 [123]); + s1.Commit(); + + c4_View v2 = s1.GetAs("b[p2:I]"); + + v2.Add(p2 [345]); + v2.Add(p2 [567]); + + s1.Commit(); + } + { + c4_Storage s1 ("f01a", 0); + + c4_View v1 = s1.View("a"); + A(v1.GetSize() == 1); + A(p1 (v1[0]) == 123); + + c4_View v2 = s1.View("b"); + A(v2.GetSize() == 2); + A(p2 (v2[0]) == 345); + A(p2 (v2[1]) == 567); + } + } D(f01a); R(f01a); E; + + B(f02, Remove view from format, 0) W(f02a); + { + c4_IntProp p1 ("p1"); + c4_IntProp p2 ("p2"); + { + c4_Storage s1 ("f02a", 1); + s1.SetStructure("a[p1:I],b[p2:I]"); + + c4_View v1 = s1.View("a"); + v1.Add(p1 [123]); + + c4_View v2 = s1.View("b"); + v2.Add(p2 [345]); + v2.Add(p2 [567]); + + s1.Commit(); + } + { + c4_Storage s1 ("f02a", 1); + s1.SetStructure("b[p2:I]"); + + c4_View v1 = s1.View("a"); + A(v1.GetSize() == 1); // 19990916 new semantics, still as temp view + A(p1 (v1[0]) == 123); + + c4_View v2 = s1.View("b"); + A(v2.GetSize() == 2); + A(p2 (v2[0]) == 345); + A(p2 (v2[1]) == 567); + + s1.Commit(); + } + { + c4_Storage s1 ("f02a", 0); + + c4_View v1 = s1.View("a"); + A(v1.GetSize() == 0); + + c4_View v2 = s1.View("b"); + A(v2.GetSize() == 2); + A(p2 (v2[0]) == 345); + A(p2 (v2[1]) == 567); + } + } D(f02a); R(f02a); E; + + B(f03, Rollback format change, 0) W(f03a); + { + c4_IntProp p1 ("p1"); + { + c4_Storage s1 ("f03a", 1); + s1.SetStructure("a[p1:I]"); + + c4_View v1 = s1.View("a"); + v1.Add(p1 [123]); + + s1.Commit(); + + v1 = s1.GetAs("a"); + A(v1.GetSize() == 0); + + s1.Rollback(); + + v1 = s1.View("a"); + A(v1.GetSize() == 1); + A(p1 (v1[0]) == 123); + } + } D(f03a); R(f03a); E; + + B(f04, Rearrange format, 0) W(f04a); + { + c4_IntProp p1 ("p1"); + c4_IntProp p2 ("p2"); + { + c4_Storage s1 ("f04a", 1); + s1.SetStructure("a[p1:I],b[p2:I]"); + + c4_View v1 = s1.View("a"); + v1.Add(p1 [123]); + + c4_View v2 = s1.View("b"); + v2.Add(p2 [345]); + v2.Add(p2 [567]); + + s1.Commit(); + } + { + c4_Storage s1 ("f04a", 1); + s1.SetStructure("b[p2:I],a[p1:I]"); + + c4_View v1 = s1.View("a"); + A(v1.GetSize() == 1); + A(p1 (v1[0]) == 123); + + c4_View v2 = s1.View("b"); + A(v2.GetSize() == 2); + A(p2 (v2[0]) == 345); + A(p2 (v2[1]) == 567); + + s1.Commit(); + } + } D(f04a); R(f04a); E; + + B(f05, Nested reformat, 0) W(f05a); + { + c4_IntProp p1 ("p1"); + c4_IntProp p2 ("p2"); + { + c4_Storage s1 ("f05a", 1); + s1.SetStructure("a[p1:I],b[p2:I]"); + + c4_View v1 = s1.View("a"); + v1.Add(p1 [123]); + + c4_View v2 = s1.View("b"); + v2.Add(p2 [345]); + v2.Add(p2 [567]); + + s1.Commit(); + } + { + c4_Storage s1 ("f05a", 1); + s1.SetStructure("a[p1:I],b[p1:I,p2:I]"); + + c4_View v2 = s1.View("b"); + p1 (v2[0]) = 543; + p1 (v2[1]) = 765; + + s1.Commit(); + } + { + c4_Storage s1 ("f05a", 0); + + c4_View v1 = s1.View("a"); + A(v1.GetSize() == 1); + A(p1 (v1[0]) == 123); + + c4_View v2 = s1.View("b"); + A(v2.GetSize() == 2); + A(p1 (v2[0]) == 543); + A(p1 (v2[1]) == 765); + A(p2 (v2[0]) == 345); + A(p2 (v2[1]) == 567); + } + } D(f05a); R(f05a); E; + + B(f06, Flip foreign data, 0) + { + D(reversed); // not created here, only dump existing file + } E; + + B(f07, Automatic structure info (obsolete), 0) W(f07a); + { +/* Structure() and Store() are no longer supported + c4_StringProp p1 ("p1"), p2 ("p2"); + c4_Row r1 = p1 ["One"] + p2 ["Two"]; + c4_Row r2; + c4_View v1; + v1.Add(r1); + v1.Add(r2); + v1.Add(r1); + + c4_View v2 = v1.Structure(); + A(v2.GetSize() == 1); + + c4_ViewProp pView ("view"); + c4_View v3 = pView (v2[0]); + A(v3.GetSize() == 2); +*/ + #define FORMAT07 "dict[parent:I,index:I,view[name:S,type:S,child:I]]" + c4_Storage s1 ("f07a", 1); + s1.SetStructure(FORMAT07); + + //s1.View("dict") = v1.Structure(); + + s1.Commit(); + + } D(f07a); R(f07a); E; + + B(f08, Automatic storage format, 0) W(f08a); + { + c4_StringProp p1 ("p1"), p2 ("p2"); + c4_Row r1 = p1 ["One"] + p2 ["Two"]; + c4_Row r2; + c4_View v1; + v1.Add(r1); + v1.Add(r2); + v1.Add(r1); + + c4_Storage s1 ("f08a", 1); + + // changed 2000-03-15: Store is gone + //s1.Store("dict", v1); + c4_View v2 = s1.GetAs("dict[p1:S,p2:S]"); + v2.InsertAt(0, v1); + + s1.Commit(); + + } D(f08a); R(f08a); E; + + B(f09, Partial restructuring, 0) W(f09a); + { + c4_IntProp p1 ("p1"), p2 ("p2"), p3 ("p3"); + c4_Storage s1 ("f09a", 1); + + c4_View v1 = s1.GetAs("a[p1:I]"); + v1.SetSize(10); + + for (int i = 0; i < v1.GetSize(); ++i) + p1 (v1[i]) = 1000 + i; + + c4_View v2 = s1.GetAs("a[p1:I,p2:I]"); + + for (int j = 0; j < v2.GetSize(); j += 2) + p2 (v2[j]) = 2000 + j; + + c4_View v3 = s1.GetAs("a[p1:I,p2:I,p3:I]"); + + for (int k = 0; k < v3.GetSize(); k += 3) + p3 (v3[k]) = 3000 + k; + + s1.Commit(); + + } D(f09a); R(f09a); E; + + B(f10, Committed restructuring, 0) W(f10a); + { + c4_IntProp p1 ("p1"), p2 ("p2"), p3 ("p3"); + c4_Storage s1 ("f10a", 1); + + c4_View v1 = s1.GetAs("a[p1:I]"); + v1.SetSize(10); + + for (int i = 0; i < v1.GetSize(); ++i) + p1 (v1[i]) = 1000 + i; + + s1.Commit(); + + c4_View v2 = s1.GetAs("a[p1:I,p2:I]"); + + for (int j = 0; j < v2.GetSize(); j += 2) + p2 (v2[j]) = 2000 + j; + + s1.Commit(); + + c4_View v3 = s1.GetAs("a[p1:I,p2:I,p3:I]"); + + for (int k = 0; k < v3.GetSize(); k += 3) + p3 (v3[k]) = 3000 + k; + + s1.Commit(); + + } D(f10a); R(f10a); E; + + // 19990824: don't crash on GetAs with an inexistent view + B(f11, Delete missing view, 0) W(f11a); + { + c4_Storage s1 ("f11a", 1); + + c4_View v1 = s1.GetAs("a"); + v1.SetSize(10); + + s1.Commit(); + + } D(f11a); R(f11a); E; +} |