Author: husted
Date: Wed Apr  6 17:07:01 2005
New Revision: 160347

URL: http://svn.apache.org/viewcvs?view=rev&rev=160347
Log:
OVR-5
OVR-7
OVR-8
* Add Interfaces and base classes sufficient to build first failing tests. 
* Tests will not pass yet. Still bootstrapping. 

Added:
    struts/sandbox/trunk/overdrive/Nexus/Core/
    struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj
    struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs
    struts/sandbox/trunk/overdrive/Nexus/Nexus.sln
    struts/sandbox/trunk/overdrive/Nexus/Test/
    struts/sandbox/trunk/overdrive/Nexus/Test/App.cs
    struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs
    struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs
    struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs
    struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs
    struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj
Modified:
    struts/sandbox/trunk/overdrive/Agility/Core/Core.csproj
    struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj
    struts/sandbox/trunk/overdrive/PhoneBook/Test/BaseTest.cs
    struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs
    struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj

Modified: struts/sandbox/trunk/overdrive/Agility/Core/Core.csproj
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Agility/Core/Core.csproj?view=diff&r1=160346&r2=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Agility/Core/Core.csproj (original)
+++ struts/sandbox/trunk/overdrive/Agility/Core/Core.csproj Wed Apr  6 17:07:01 
2005
@@ -9,7 +9,7 @@
             <Settings
                 ApplicationIcon = ""
                 AssemblyKeyContainerName = ""
-                AssemblyName = "Core"
+                AssemblyName = "Agility.Core"
                 AssemblyOriginatorKeyFile = ""
                 DefaultClientScript = "JScript"
                 DefaultHTMLPageLayout = "Grid"
@@ -18,7 +18,7 @@
                 OutputType = "Library"
                 PreBuildEvent = ""
                 PostBuildEvent = ""
-                RootNamespace = "Core"
+                RootNamespace = "Agility.Core"
                 RunPostBuildEvent = "OnBuildSuccess"
                 StartupObject = ""
             >
@@ -76,7 +76,7 @@
                 />
                 <Reference
                     Name = "System.XML"
-                    AssemblyName = "System.XML"
+                    AssemblyName = "System.Xml"
                     HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
                 />
             </References>

Added: struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]                
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build 
Numbers 
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly 
signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file which 
contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) 
utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile 
is
+//       located in the project directory, you would specify the 
AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Added: struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Core.csproj Wed Apr  6 17:07:01 
2005
@@ -0,0 +1,115 @@
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.10.3077"
+        SchemaVersion = "2.0"
+        ProjectGuid = "{7C8CAFD4-1E45-41B4-9963-F51199B12EA7}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "Nexus.Core"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "Library"
+                PreBuildEvent = ""
+                PostBuildEvent = ""
+                RootNamespace = "Nexus.Core"
+                RunPostBuildEvent = "OnBuildSuccess"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "false"
+                    OutputPath = "bin\Debug\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+                />
+                <Reference
+                    Name = "Agility.Core"
+                    AssemblyName = "Agility.Core"
+                    HintPath = "..\..\Agility\Core\bin\Debug\Agility.Core.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IController.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "IRequestContext.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "RequestContext.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Added: struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,17 @@
+namespace Nexus.Core
+{
+       /// <summary>
+       /// The IController interacts with the caller, 
+       /// controlling and managing the processing of a request. 
+       /// </summary>
+       public interface IController
+       {
+               /// <summary>
+               /// Obtain and execute the IRequestContext.
+               /// </summary>
+               /// <param name="command">Our command name</param>
+               /// <returns>Context after execution</returns>
+               /// 
+               IRequestContext ExecuteContext (string command);
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,115 @@
+using System;
+using Agility.Core;
+
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Exchange data between business and presentation layers per [OVR-7]. 
+       /// </summary>
+       /// <remarks>
+       /// <p>
+       /// An IRequestContext can predefine whatever properties we need for 
storing input, 
+       /// output, messages, and other common attributes, including Locale (or 
Culture) 
+       /// and user credentials. 
+       /// </p>
+       /// </remarks>
+       public interface IRequestContext : IContext
+       {
+
+               /// <summary>
+               /// Return true if this context contains all of the given keys,.
+               /// </summary>
+               /// <returns>True if this context contains all of the given 
keys.</returns>
+               bool ContainsKeys (string[] keys);
+               
+               /// <summary>
+               /// Return true if an Outcome object is present.
+               /// </summary>
+               /// <returns>True if an Outcome context is present.</returns>
+               bool HasOutcome { get; }
+
+               /// <summary>
+               /// Return a IList stored under the Command ID, if any.
+               /// </summary>
+               /// <remarks>
+               /// <p>
+               /// Some Commands returns List of values.
+               /// So that Commands can work together as part of a Chain, 
+               /// list-based Commands are expected to store the 
+               /// list under their own Command ID.
+               /// Outcome is a convenient method to access the 
+               /// initial or "outermost" Command or Chain ID. 
+               /// </p>
+               /// <p>
+               /// To allow use as subcommands in a Chain, 
+               /// INexusCommand implementations should prefer the idiom 
+               /// <code>Context[ID] = object</code>
+               /// to using the Outcome directly. 
+               /// Since they might not be the initial Command,
+               /// but rather a subcommand, or link, in a Chain.
+               /// </p>
+               /// <p>
+               /// Outcome is more convenient to presentation layer clients, 
+               /// who are looking for the top-level output, 
+               /// rather than output of a particular subcommand.
+               /// </p>
+               /// <p>
+               /// As mentioned, both Outcome and the context[ID] idiom 
+               /// can be used by Command that return lists of values. 
+               /// Commands that return a single set of fields 
+               /// can store the result directly in the main Context. 
+               /// This strategy allows one Command to obtain field values 
+               /// to be used by another Command 
+               /// (like piping output between Unix shell commands.)
+               /// </p>
+               /// <p>
+               /// Note that "Outcome" is an "alias" to an entry in 
+               /// this context. 
+               /// Unlike FieldState, Outcome is not a subcontext 
+               /// in its own right. 
+               /// </p>
+               ///     </remarks>
+               object Outcome { get; set; }
+
+               /// <summary>
+               /// A list of error messages, keyed by the field causing the 
error, or to a magic global key.
+               /// </summary>
+               /// <remark>
+               /// TODO: Refactor as NameValueCollection ?
+               /// </remark>
+               IContext Errors { get; set; }
+               
+               /// <summary>
+               /// Add an error message under the "global" key.
+               /// </summary>
+               /// <param name="template">Message template.</param>
+               void AddError (string template);
+
+               /// <summary>
+               /// Indicate whether errors exist.
+               /// </summary>
+               /// <returns>True if there are errors. False 
otherwise.</returns>
+               bool HasErrors { get; }
+
+               /// <summary>
+               /// An Exception, if thrown.
+               /// </summary>
+               /// <remark>
+               /// A IViewContext is readonly, 
+               /// but another interface (e.g. IHelperContext) may extend to 
add a setter, if needed.
+               /// </remark>
+               Exception Fault { get; set; }
+
+               /// <summary>
+               /// Indicate whether an Exception was caught.
+               /// </summary>
+               /// <returns>True if an Exception was caught.</returns>
+               bool HasFault { get; }
+
+               /// <summary>
+               /// Indicate whether context is free of faults and errors.
+               /// </summary>
+               /// <returns>True if there are no faults or errors.</returns>
+               bool IsNominal { get; }
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,99 @@
+using System;
+using Agility.Core;
+
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Summary description for RequestContext.
+       /// </summary>
+       public class RequestContext : Context, IRequestContext
+       {
+
+               public bool ContainsKeys(string[] keys)
+               {
+                       // TODO:  Add RequestContext.ContainsKeys implementation
+                       return false;
+               }
+
+               public bool HasOutcome
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.HasOutcome getter 
implementation
+                               return false;
+                       }
+               }
+
+               public object Outcome
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.Outcome getter 
implementation
+                               return null;
+                       }
+                       set
+                       {
+                               // TODO:  Add RequestContext.Outcome setter 
implementation
+                       }
+               }
+
+               public Agility.Core.IContext Errors
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.Errors getter 
implementation
+                               return null;
+                       }
+                       set
+                       {
+                               // TODO:  Add RequestContext.Errors setter 
implementation
+                       }
+               }
+
+               public void AddError(string template)
+               {
+                       // TODO:  Add RequestContext.AddError implementation
+               }
+
+               public bool HasErrors
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.HasErrors getter 
implementation
+                               return false;
+                       }
+               }
+
+               public Exception Fault
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.Fault getter 
implementation
+                               return null;
+                       }
+                       set
+                       {
+                               // TODO:  Add RequestContext.Fault setter 
implementation
+                       }
+               }
+
+               public bool HasFault
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.HasFault getter 
implementation
+                               return false;
+                       }
+               }
+
+               public bool IsNominal
+               {
+                       get
+                       {
+                               // TODO:  Add RequestContext.IsNominal getter 
implementation
+                               return false;
+                       }
+               }
+
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Nexus.sln
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Nexus.sln?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Nexus.sln (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Nexus.sln Wed Apr  6 17:07:01 2005
@@ -0,0 +1,30 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", 
"Core\Core.csproj", "{7C8CAFD4-1E45-41B4-9963-F51199B12EA7}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", 
"Test\Test.csproj", "{C533FFAA-CB2B-40CD-B3C2-77394E4D9222}"
+       ProjectSection(ProjectDependencies) = postProject
+               {7C8CAFD4-1E45-41B4-9963-F51199B12EA7} = 
{7C8CAFD4-1E45-41B4-9963-F51199B12EA7}
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfiguration) = preSolution
+               Debug = Debug
+               Release = Release
+       EndGlobalSection
+       GlobalSection(ProjectConfiguration) = postSolution
+               {7C8CAFD4-1E45-41B4-9963-F51199B12EA7}.Debug.ActiveCfg = 
Debug|.NET
+               {7C8CAFD4-1E45-41B4-9963-F51199B12EA7}.Debug.Build.0 = 
Debug|.NET
+               {7C8CAFD4-1E45-41B4-9963-F51199B12EA7}.Release.ActiveCfg = 
Release|.NET
+               {7C8CAFD4-1E45-41B4-9963-F51199B12EA7}.Release.Build.0 = 
Release|.NET
+               {C533FFAA-CB2B-40CD-B3C2-77394E4D9222}.Debug.ActiveCfg = 
Debug|.NET
+               {C533FFAA-CB2B-40CD-B3C2-77394E4D9222}.Debug.Build.0 = 
Debug|.NET
+               {C533FFAA-CB2B-40CD-B3C2-77394E4D9222}.Release.ActiveCfg = 
Release|.NET
+               {C533FFAA-CB2B-40CD-B3C2-77394E4D9222}.Release.Build.0 = 
Release|.NET
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+       EndGlobalSection
+       GlobalSection(ExtensibilityAddIns) = postSolution
+       EndGlobalSection
+EndGlobal

Added: struts/sandbox/trunk/overdrive/Nexus/Test/App.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/App.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/App.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/App.cs Wed Apr  6 17:07:01 2005
@@ -0,0 +1,19 @@
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Tokens representing context keys.
+       /// </summary>
+       public class App
+       {
+               private App()
+               {
+                       // No need to construct static helper class
+               }
+
+               /// <summary>
+               /// Token for first_name property.
+               /// </summary>
+               public const string LIST_ALL = "list_all";
+
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]                
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build 
Numbers 
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly 
signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file which 
contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) 
utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile 
is
+//       located in the project directory, you would specify the 
AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Added: struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,22 @@
+using NUnit.Framework;
+
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Summary description for BaseNexusTest.
+       /// </summary>
+       [TestFixture]
+       public class BaseNexusTest
+       {
+
+               protected IController controller;
+
+               [SetUp]
+               public virtual void SetUp ()
+               {
+                       // TODO: Implement Objects.Facotory [OVR-8]
+                       // IApplicationContext factory = Objects.Factory ();
+                       // controller = new Controller (factory);
+               }
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,23 @@
+using NUnit.Framework;
+
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Exercise IController per [OVR-8].
+       /// </summary>
+       [TestFixture]
+       public class ControllerTest : BaseNexusTest
+       {
+
+               /// <summary>
+               /// A simple "list all" command should return nominal with an 
outcome. 
+               /// </summary>
+               [Test]
+               public void ExecuteContext()
+               {
+                       IRequestContext context = 
controller.ExecuteContext(App.LIST_ALL);
+                       Assert.IsTrue (context.IsNominal,"Expected nominal 
result.");
+                       Assert.IsTrue(context.HasOutcome,"Expected outcome from 
command.");
+               }
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs Wed Apr  6 
17:07:01 2005
@@ -0,0 +1,89 @@
+using System;
+using System.Collections;
+using NUnit.Framework;
+
+namespace Nexus.Core
+{
+       /// <summary>
+       /// Exercise IRequestContext per [OVR-7].
+       /// </summary>
+       [TestFixture]
+       public class RequestContextTest
+       {
+
+               IRequestContext context;
+               Exception fault;
+               IList list;
+               string[] KEYS = {"KEY1","KEY2"};
+
+               /// <summary>
+               /// Initialize private fields.
+               /// </summary>
+               [SetUp]
+               public void SetUp()
+               {
+                       context = new RequestContext();
+                       Assert.IsTrue (context.IsNominal,"Expected nominal 
state for a new IRequestContext.");                  
+                       Assert.IsFalse(context.HasOutcome,"Expected no Outcome 
for a new IRequestContext.");                    
+                       Assert.IsFalse(context.ContainsKeys(KEYS),"Expected no 
custom keys for a new IRequestContext.");
+
+                       fault = new ApplicationException("RequestContextTest");
+                       list = new ArrayList();
+                       list.Add("data");
+               }
+
+               /// <summary>
+               /// A IRequestContext is not nominal if an error is added. 
+               /// </summary>
+               [Test]
+               public void IsNominal_Error()
+               {
+                       context.AddError("Business logic error");
+                       Assert.IsFalse(context.IsNominal,"Expected non-nominal 
state after adding error message.");
+               }
+
+               /// <summary>
+               /// A IRequestContext is not nominal is an Exception is set.
+               /// </summary>
+               [Test]
+               public void IsNominal_Fault()
+               {
+                       context.Fault = fault;
+                       Assert.IsFalse(context.IsNominal,"Expected non-nominal 
state after setting Exception.");
+               }
+
+               /// <summary>
+               /// A IRequestContext is not nominal if multiple errors are 
added and an Exception is set.
+               /// </summary>
+               [Test]
+               public void IsNominal_Errors_and_Fault()
+               {
+                       context.AddError("Business logic error");
+                       context.AddError("Business logic error 2");
+                       context.Fault = fault;
+                       Assert.IsFalse(context.IsNominal,"Expected non-nominal 
state after adding errors and Exception.");
+               }
+
+               /// <summary>
+               /// If data is set to the Outcome property, HasOutcome is true.
+               /// </summary>
+               [Test]
+               public void HasOutcome()
+               {
+                       context.Outcome = list;
+                       Assert.IsTrue (context.HasOutcome);
+               }       
+
+               /// <summary>
+               /// If the context contains keys specified in an array, 
ContextKeys returns true.
+               /// </summary>
+               public void ContainsKeys()
+               {
+                       foreach (string key in KEYS)
+                       {
+                               context[key] = key;
+                       }
+                       Assert.IsTrue (context.ContainsKeys (KEYS),"Expected to 
find keys added to context.");                  
+               }
+       }
+}

Added: struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj?view=auto&rev=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj (added)
+++ struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj Wed Apr  6 17:07:01 
2005
@@ -0,0 +1,131 @@
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.10.3077"
+        SchemaVersion = "2.0"
+        ProjectGuid = "{C533FFAA-CB2B-40CD-B3C2-77394E4D9222}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "Nexus.Test"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "Library"
+                PreBuildEvent = ""
+                PostBuildEvent = ""
+                RootNamespace = "Nexus.Core"
+                RunPostBuildEvent = "OnBuildSuccess"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "false"
+                    OutputPath = "bin\Debug\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = 
"..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+                />
+                <Reference
+                    Name = "nunit.framework"
+                    AssemblyName = "nunit.framework"
+                    HintPath = "..\..\..\..\..\..\..\Program Files\NUnit 
2.2\bin\nunit.framework.dll"
+                    AssemblyFolderKey = "hklm\dn\nunit.framework"
+                />
+                <Reference
+                    Name = "Nexus.Core"
+                    AssemblyName = "Nexus.Core"
+                    HintPath = "..\Core\bin\Debug\Nexus.Core.dll"
+                />
+                <Reference
+                    Name = "Agility.Core"
+                    AssemblyName = "Agility.Core"
+                    HintPath = "..\..\Agility\Core\bin\Debug\Agility.Core.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "App.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "BaseNexusTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "ControllerTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "RequestContextTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj?view=diff&r1=160346&r2=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj (original)
+++ struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj Wed Apr  6 
17:07:01 2005
@@ -84,6 +84,11 @@
         <Files>
             <Include>
                 <File
+                    RelPath = "App.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "AssemblyInfo.cs"
                     SubType = "Code"
                     BuildAction = "Compile"

Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/BaseTest.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/BaseTest.cs?view=diff&r1=160346&r2=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook/Test/BaseTest.cs (original)
+++ struts/sandbox/trunk/overdrive/PhoneBook/Test/BaseTest.cs Wed Apr  6 
17:07:01 2005
@@ -15,6 +15,7 @@
  */
 using System;
 using System.Collections;
+using Nexus.Core;
 using NUnit.Framework;
 
 namespace PhoneBook.Core
@@ -23,7 +24,7 @@
        /// Base class for unit tests.
        /// </summary>
        [TestFixture]
-       public class BaseTest
+       public class BaseTest : BaseNexusTest
        {
                /// <summary>
                /// Dummy test to exercise infrastructure.

Modified: 
struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs?view=diff&r1=160346&r2=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs 
(original)
+++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs Wed 
Apr  6 17:07:01 2005
@@ -13,16 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System.Collections;
+using Nexus.Core;
 using NUnit.Framework;
 
 namespace PhoneBook.Core.Commands
 {
        /// <summary>
-       /// Exercise SelectAll Command.
+       /// Exercise SelectAll Command per [OVR-5].
        /// </summary>
        [TestFixture]
        public class SelectAllTest : BaseTest
        {
+               
                /// <summary>
                /// SelectAll and succeed.
                /// </summary>
@@ -33,16 +36,20 @@
                public void SelectAll_Pass ()
                {
                        // TODO: Write code to pass text [OVR-5]
-                       /*
-                       IRequestContext context = Controller.ExecuteContext 
(App.SELECT_ALL);
-                       AssertNominal (context);
-                       AssertOutcome (context.HasOutcome);
+                       IRequestContext context = controller.ExecuteContext 
(App.SELECT_ALL);
+                       Assert.IsTrue (context.IsNominal,"Expected command to 
pass.");
+                       Assert.IsTrue (context.HasOutcome,"Expected command to 
set an Outcome.");
                        IList list = context.Outcome as IList;
-                       AssertListNotEmpty(list);
+                       bool notEmpty = ((list!=null) && (list.Count>0));
+                       Assert.IsTrue (notEmpty,"Expected outcome to be a 
not-empty list");
                        IDictionary row = list[0] as IDictionary;
-                       string[] fields = {App.FIRST_NAME, App.LAST_NAME, 
App.USER_NAME, App.EXTENSION, App.HIRED, App.HOURS, App.EDITOR};
-                       AssertFields (context,fields);
-                       */
+                       string[] KEYS = {App.FIRST_NAME, App.LAST_NAME, 
App.USER_NAME, App.EXTENSION, App.HIRED, App.HOURS, App.EDITOR};
+                       bool valid = true;
+                       foreach (string key in KEYS)
+                       {
+                               valid = valid && row.Contains (key);
+                       }
+                       Assert.IsTrue (valid,"Expected row to contain all 
keys.");
                }
        }
 }

Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj?view=diff&r1=160346&r2=160347
==============================================================================
--- struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj (original)
+++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj Wed Apr  6 
17:07:01 2005
@@ -90,6 +90,16 @@
                     Project = "{3150F3E8-9A04-4FED-B16F-CEA57756E934}"
                     Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
                 />
+                <Reference
+                    Name = "Nexus.Core"
+                    AssemblyName = "Nexus.Core"
+                    HintPath = "..\..\Nexus\Core\bin\Debug\Nexus.Core.dll"
+                />
+                <Reference
+                    Name = "Nexus.Test"
+                    AssemblyName = "Nexus.Test"
+                    HintPath = "..\..\Nexus\Test\bin\Debug\Nexus.Test.dll"
+                />
             </References>
         </Build>
         <Files>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to