using System; using csUnit; using TestFramework.ApplicationAPI; namespace Tests.resource { /// <summary> /// Shows use of [ExpectedException]. /// </summary> public class TestResource : ResourceFixture { [Test] public void testResource() { Pool parent = new Pool(); parent.name = "FatherPool"; parent = (Pool) save(parent, null); Resource resource = new Resource(); resource.fullName = "Nouveau resource"; ResourceScope scope = new ResourceScope(); scope.parent = new PoolScope(); resource.parent = parent; resource.userName = "Stub User " + DateTime.Now.Ticks; resource = (Resource) save(resource, scope); Assert.NotNull(resource.ID); } public void testResetToNullDate() { // Creates a parent pool. Pool parent = new Pool(); parent.name = "RootPool " + DateTime.Now.Ticks; parent = (Pool) save(parent, null); // Initializes a resource with a future discontinueDate. Resource resource = new Resource(); resource.fullName = "Steve McDuff"; resource.parent = parent; resource.userName = "User " + DateTime.Now.Ticks; resource.effectiveStartDate = DateTime.Today; resource.discontinueDate = DateTime.Today + TimeSpan.FromDays(30.0); // Initializes the scope. ResourceScope scope = new ResourceScope(); scope.parent = new PoolScope(); // Keeps the original discontinueDate for later comparison. DateTime originalDate = resource.discontinueDate; // Creates the resource. Resource reloadedRes = (Resource) save(resource, scope); // Ensure that reloaded date is still as the original. Assert.Equals(originalDate, reloadedRes.discontinueDate); // Resets the discontinueDate to "null". // Design note: "empty" .NET DateTime is translated to Java "null" // by RPM's Web Service. reloadedRes.discontinueDate = new DateTime(); // Keeps the "null" discontinueDate for later comparison. DateTime nullDateTime = reloadedRes.discontinueDate; // Saves the resource with reset discontinueDate. Resource reloadedRes2 = (Resource) save(reloadedRes, scope); // Ensure that reloaded date is reset to "null". Assert.Equals(nullDateTime, reloadedRes2.discontinueDate); // Check in RPM's client that the date is null. } public void testSaveNullDate() { Pool parent = new Pool(); parent.name = "FatherPool"; parent = (Pool) save(parent, null); Resource resource = new Resource(); resource.fullName = "New resource"; ResourceScope scope = new ResourceScope(); scope.parent = new PoolScope(); resource.parent = parent; resource.userName = "Stub User " + DateTime.Now.Ticks; DateTime originalDate = resource.discontinueDate; System.Console.WriteLine("\nOriginal date: " + originalDate + "\n"); Resource autoReloadedRes = (Resource) save(resource, scope); Assert.NotNull(autoReloadedRes.ID); System.Console.WriteLine("\nOriginal date: " + originalDate + " - Auto-reloaded discontinue date: " + autoReloadedRes.discontinueDate + "\n"); Assert.Equals(originalDate, autoReloadedRes.discontinueDate); Resource reloadedRes = (Resource) loadFromID(autoReloadedRes, scope); System.Console.WriteLine("\nOriginal date: " + originalDate + " - Reloaded discontinue date: " + reloadedRes.discontinueDate + "\n"); Assert.Equals(originalDate, reloadedRes.discontinueDate); } } }