CSLA.NET 6.0.0
CSLA .NET is a software development framework that helps you build a reusable, maintainable object-oriented business layer for your app.
EditableRootListTests.cs
Go to the documentation of this file.
1//-----------------------------------------------------------------------
2// <copyright file="EditableRootListTests.cs" company="Marimer LLC">
3// Copyright (c) Marimer LLC. All rights reserved.
4// Website: https://cslanet.com
5// </copyright>
6// <summary>no summary</summary>
7//-----------------------------------------------------------------------
8using System;
9using System.Collections.Generic;
10using System.Text;
11using Csla.TestHelpers;
12
13#if !NUNIT
14using Microsoft.VisualStudio.TestTools.UnitTesting;
15#else
16using NUnit.Framework;
17using TestClass = NUnit.Framework.TestFixtureAttribute;
18using TestInitialize = NUnit.Framework.SetUpAttribute;
19using TestCleanup = NUnit.Framework.TearDownAttribute;
20using TestMethod = NUnit.Framework.TestAttribute;
21#endif
22
24{
25 [TestClass]
27 {
28 private static TestDIContext _testDIContext;
29
31 public static void ClassInitialize(TestContext context)
32 {
33 _testDIContext = TestDIContextFactory.CreateDefaultContext();
34 }
35
36 [TestMethod]
37 public void AddItem()
38 {
39 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
40
41 ERlist list = dataPortal.Create();
42 ERitem item = list.AddNew();
43 Assert.AreEqual(1, list.Count, "Count should be 1");
44 Assert.IsTrue(list[0].IsNew, "Object should be new");
45 }
46
47 [TestMethod]
48 public void RemoveNewItem()
49 {
50 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
51
53 _isListSaved = false;
54 ERlist list = dataPortal.Create();
55 ERitem item = list.AddNew();
56 Assert.AreEqual(1, list.Count, "Incorrect count after add");
57 Assert.IsTrue(list[0].IsNew, "Object should be new");
58 list.Saved += new EventHandler<Csla.Core.SavedEventArgs>(List_Saved);
59 list.RemoveAt(0);
60 Assert.AreEqual(true, _isListSaved, "List saved event did not fire after save.");
61 Assert.AreEqual(0, list.Count, "Incorrect count after remove");
62 Assert.AreEqual("", TestResults.GetResult("DP"), "Object should not have done a delete");
63 Assert.IsTrue(item.IsNew, "Object should be new after delete");
64 }
65
66 [TestMethod]
67 public void RemoveOldItem()
68 {
69 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
70 IDataPortal<ERitem> itemDataPortal = _testDIContext.CreateDataPortal<ERitem>();
71
73 _isListSaved = false;
74
75 ERlist list = dataPortal.Create();
76
77 list.Add(itemDataPortal.Fetch("test"));
78 ERitem item = list[0];
79 item.Saved += new EventHandler<Csla.Core.SavedEventArgs>(item_Saved);
80 list.Saved += new EventHandler<Csla.Core.SavedEventArgs>(List_Saved);
81 Assert.AreEqual(1, list.Count, "Incorrect count after add");
82 Assert.IsFalse(list[0].IsNew, "Object should not be new");
83
84 list.RemoveAt(0);
85 Assert.AreEqual(true, _isListSaved, "List saved event did not fire after save.");
86 Assert.AreEqual(0, list.Count, "Incorrect count after remove");
87 Assert.AreEqual("DeleteSelf", TestResults.GetResult("DP"), "Object should have deleted itself");
88 Assert.IsTrue(_itemIsNew, "Object should be new after delete");
89 }
90
91 private bool _itemIsNew;
92 private bool _isListSaved;
93
94 void item_Saved(object sender, Csla.Core.SavedEventArgs e)
95 {
96 _itemIsNew = ((ERitem)e.NewObject).IsNew;
97 }
98
99 void List_Saved(object sender, Csla.Core.SavedEventArgs e)
100 {
101 _isListSaved = (e.Error==null && e.NewObject != null);
102 }
103
104 [TestMethod]
105 public void InsertItem()
106 {
107 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
109
110 _isListSaved = false;
111
112 ERlist list = dataPortal.Create();
113 list.Saved += new EventHandler<Csla.Core.SavedEventArgs>(List_Saved);
114 ERitem item = list.AddNew();
115 Assert.AreEqual(1, list.Count, "Incorrect count after add");
116
117 // simulate grid edit
118 System.ComponentModel.IEditableObject obj = (System.ComponentModel.IEditableObject)item;
119 obj.BeginEdit();
120 list[0].Data = "test";
121 obj.EndEdit();
122 Assert.AreEqual(true, _isListSaved, "List saved event did not fire after save.");
123 Assert.AreEqual("Insert", TestResults.GetResult("DP"), "Object should have been inserted");
124 Assert.IsFalse(list[0].IsNew, "Object should not be new");
125 }
126
127 [TestMethod]
128 public void UpdateItem()
129 {
130 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
131 IDataPortal<ERitem> itemDataPortal = _testDIContext.CreateDataPortal<ERitem>();
133
134 _isListSaved = false;
135
136 ERlist list = dataPortal.Create();
137 list.Saved += new EventHandler<Csla.Core.SavedEventArgs>(List_Saved);
138 list.Add(itemDataPortal.Fetch("test"));
139 ERitem item = list[0];
140 Assert.AreEqual(1, list.Count, "Incorrect count after add");
141 Assert.IsFalse(list[0].IsNew, "Object should not be new");
142
143 // simulate grid edit
144 System.ComponentModel.IEditableObject obj = (System.ComponentModel.IEditableObject)item;
145 obj.BeginEdit();
146 item.Data = "new data";
147 Assert.IsFalse(list[0].IsNew, "Object should not be new");
148 Assert.IsFalse(list[0].IsDeleted, "Object should not be deleted");
149 Assert.IsTrue(list[0].IsDirty, "Object should be dirty");
150 obj.EndEdit();
151 Assert.AreEqual(true, _isListSaved, "List saved event did not fire after save.");
152 Assert.AreEqual("Update", TestResults.GetResult("DP"), "Object should have been updated");
153 Assert.IsFalse(list[0].IsNew, "Object should not be new");
154 }
155
156 [TestMethod]
157 public void BusyImplemented()
158 {
159 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
160
161 ERlist list = dataPortal.Create();
162 Assert.IsFalse(list.IsBusy);
163 }
164
165 [TestMethod]
166 public void ErrorRecoveryTest()
167 {
168 IDataPortal<ERlist> dataPortal = _testDIContext.CreateDataPortal<ERlist>();
169
170 ERlist list = dataPortal.Create();
171 bool errorOccurred = false;
172 try
173 {
174 list.SaveItem(10);
175 }
176 catch
177 {
178 errorOccurred = true;
179 }
180 Assert.AreEqual(true, errorOccurred, "An error should have been thrown.");
181 Assert.AreEqual(true, list.RaiseListChangedEvents, "RaiseListChangedEvents should have been reset");
182 }
183 }
184}
EventHandler< Csla.Core.SavedEventArgs > Saved
Event raised when an object has been saved.
Event arguments containing a reference to the new object that was returned as a result of the Save() ...
EventHandler< Csla.Core.SavedEventArgs > Saved
Event raised when an object has been saved.
Static dictionary-like class that offers similar functionality to GlobalContext This is used in tests...
Definition: TestResults.cs:21
static void Reinitialise()
Reinitialise the dictionary, clearing any existing results, ready for the next test
Definition: TestResults.cs:69
static string GetResult(string key)
Get a result of an operation from the underlying results dictionary
Definition: TestResults.cs:49
Type to carry context information for DI in unit tests
Interface defining the members of the data portal type.
Definition: IDataPortalT.cs:17
object Create(params object[] criteria)
Called by a factory method in a business class to create a new object, which is loaded with default v...