Author: apadilla
Date: Wed Oct 20 05:14:10 2010
New Revision: 1024525
URL: http://svn.apache.org/viewvc?rev=1024525&view=rev
Log:
[NPANDAY-328] - added integration test for VS2010 MVC Project
Added:
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/NPandayIT330MVC2010ProjectTest.java
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/App_Data/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/Site.css
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/AccountController.cs
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/HomeController.cs
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax.cs
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/AccountModels.cs
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest.csproj
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/AssemblyInfo.cs
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftAjax.debug.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftAjax.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftMvcAjax.debug.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftMvcAjax.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftMvcValidation.debug.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/MicrosoftMvcValidation.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery-1.4.1-vsdoc.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery-1.4.1.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery-1.4.1.min.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery.validate-vsdoc.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery.validate.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Scripts/jquery.validate.min.js
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Account/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Account/ChangePassword.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Account/ChangePasswordSuccess.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Account/LogOn.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Account/Register.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Home/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Home/About.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Home/Index.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Shared/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Shared/Error.aspx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Shared/LogOnUserControl.ascx
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Shared/Site.Master
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Views/Web.config
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Web
References/
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Web.config
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/pom.xml
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/pom.xml
Modified:
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/IntegrationTestSuite.java
Modified:
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/IntegrationTestSuite.java
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/IntegrationTestSuite.java?rev=1024525&r1=1024524&r2=1024525&view=diff
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/IntegrationTestSuite.java
(original)
+++
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/IntegrationTestSuite.java
Wed Oct 20 05:14:10 2010
@@ -46,6 +46,7 @@ public class IntegrationTestSuite
// suite.addTestSuite( NPandayIT0002NetModuleDependencyTest.class );
// issue #11729
// suite.addTestSuite(
NPandayIT0003NetModuleTransitiveDependencyTest.class ); // issue #11729
+ suite.addTestSuite( NPandayIT330MVC2010ProjectTest.class );
suite.addTestSuite( NPandayITNet40Test.class );
suite.addTestSuite( NPandayIT13635SnapshotUpdatesTest.class );
suite.addTestSuite( NPandayIT13542OptionInferTest.class );
Added:
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/NPandayIT330MVC2010ProjectTest.java
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/NPandayIT330MVC2010ProjectTest.java?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/NPandayIT330MVC2010ProjectTest.java
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/java/npanday/its/NPandayIT330MVC2010ProjectTest.java
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,56 @@
+package npanday.its;
+
+/*
+ * Copyright 2010
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.it.Verifier;
+import org.apache.maven.it.util.ResourceExtractor;
+
+import java.io.File;
+
+public class NPandayIT330MVC2010ProjectTest
+ extends AbstractNPandayIntegrationTestCase
+{
+ public NPandayIT330MVC2010ProjectTest()
+ {
+ super( "[1.2,)", "[v4.0.30319,)" );
+
+ File f = new File( System.getenv( "SYSTEMROOT" ),
"assembly/GAC_MSIL/System.Web.MVC" );
+ if ( !f.exists() || !f.isDirectory() )
+ {
+ skipReason = "MVC.NET is not installed";
+ skip = true;
+ }
+ }
+
+ public void testMVC2010Project()
+ throws Exception
+ {
+ File testDir = ResourceExtractor.simpleExtractResources( getClass(),
"/NPanday330MVC2010ProjectTest" );
+ Verifier verifier = getVerifier( testDir );
+ verifier.executeGoal( "install" );
+
+ String assembly = new File( testDir +
"/NPanday330MVC2010ProjectTest",
+ getAssemblyFile( "NPanday330MVC2010ProjectTest", "1.0.0.0", "dll"
) ).getAbsolutePath();
+ verifier.assertFilePresent( assembly );
+
+ assertClassPresent( assembly,
"NPanday330MVC2010ProjectTest.Controllers.AccountController" );
+ assertClassPresent( assembly,
"NPanday330MVC2010ProjectTest.Controllers.HomeController" );
+ assertClassPresent( assembly,
"NPanday330MVC2010ProjectTest.MvcApplication" );
+ verifier.verifyErrorFreeLog();
+ verifier.resetStreams();
+ }
+}
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/Site.css
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/Site.css?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/Site.css
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Content/Site.css
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,344 @@
+/*----------------------------------------------------------
+The base color for this template is #5c87b2. If you'd like
+to use a different color start by replacing all instances of
+#5c87b2 with your new color.
+----------------------------------------------------------*/
+body
+{
+ background-color: #5c87b2;
+ font-size: .75em;
+ font-family: Verdana, Helvetica, Sans-Serif;
+ margin: 0;
+ padding: 0;
+ color: #696969;
+}
+
+a:link
+{
+ color: #034af3;
+ text-decoration: underline;
+}
+a:visited
+{
+ color: #505abc;
+}
+a:hover
+{
+ color: #1d60ff;
+ text-decoration: none;
+}
+a:active
+{
+ color: #12eb87;
+}
+
+p, ul
+{
+ margin-bottom: 20px;
+ line-height: 1.6em;
+}
+
+/* HEADINGS
+----------------------------------------------------------*/
+h1, h2, h3, h4, h5, h6
+{
+ font-size: 1.5em;
+ color: #000;
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+h1
+{
+ font-size: 2em;
+ padding-bottom: 0;
+ margin-bottom: 0;
+}
+h2
+{
+ padding: 0 0 10px 0;
+}
+h3
+{
+ font-size: 1.2em;
+}
+h4
+{
+ font-size: 1.1em;
+}
+h5, h6
+{
+ font-size: 1em;
+}
+
+/* this rule styles <h2> tags that are the
+first child of the left and right table columns */
+.rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2
+{
+ margin-top: 0;
+}
+
+/* PRIMARY LAYOUT ELEMENTS
+----------------------------------------------------------*/
+
+/* you can specify a greater or lesser percentage for the
+page width. Or, you can specify an exact pixel width. */
+.page
+{
+ width: 90%;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#header
+{
+ position: relative;
+ margin-bottom: 0px;
+ color: #000;
+ padding: 0;
+}
+
+#header h1
+{
+ font-weight: bold;
+ padding: 5px 0;
+ margin: 0;
+ color: #fff;
+ border: none;
+ line-height: 2em;
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 32px !important;
+}
+
+#main
+{
+ padding: 30px 30px 15px 30px;
+ background-color: #fff;
+ margin-bottom: 30px;
+ _height: 1px; /* only IE6 applies CSS properties starting with an
underscore */
+}
+
+#footer
+{
+ color: #999;
+ padding: 10px 0;
+ text-align: center;
+ line-height: normal;
+ margin: 0;
+ font-size: .9em;
+}
+
+/* TAB MENU
+----------------------------------------------------------*/
+ul#menu
+{
+ border-bottom: 1px #5C87B2 solid;
+ padding: 0 0 2px;
+ position: relative;
+ margin: 0;
+ text-align: right;
+}
+
+ul#menu li
+{
+ display: inline;
+ list-style: none;
+}
+
+ul#menu li#greeting
+{
+ padding: 10px 20px;
+ font-weight: bold;
+ text-decoration: none;
+ line-height: 2.8em;
+ color: #fff;
+}
+
+ul#menu li a
+{
+ padding: 10px 20px;
+ font-weight: bold;
+ text-decoration: none;
+ line-height: 2.8em;
+ background-color: #e8eef4;
+ color: #034af3;
+}
+
+ul#menu li a:hover
+{
+ background-color: #fff;
+ text-decoration: none;
+}
+
+ul#menu li a:active
+{
+ background-color: #a6e2a6;
+ text-decoration: none;
+}
+
+ul#menu li.selected a
+{
+ background-color: #fff;
+ color: #000;
+}
+
+/* FORM LAYOUT ELEMENTS
+----------------------------------------------------------*/
+
+fieldset
+{
+ margin: 1em 0;
+ padding: 1em;
+ border: 1px solid #CCC;
+}
+
+fieldset p
+{
+ margin: 2px 12px 10px 10px;
+}
+
+legend
+{
+ font-size: 1.1em;
+ font-weight: 600;
+ padding: 2px 4px 8px 4px;
+}
+
+input[type="text"]
+{
+ width: 200px;
+ border: 1px solid #CCC;
+}
+
+input[type="password"]
+{
+ width: 200px;
+ border: 1px solid #CCC;
+}
+
+/* TABLE
+----------------------------------------------------------*/
+
+table
+{
+ border: solid 1px #e8eef4;
+ border-collapse: collapse;
+}
+
+table td
+{
+ padding: 5px;
+ border: solid 1px #e8eef4;
+}
+
+table th
+{
+ padding: 6px 5px;
+ text-align: left;
+ background-color: #e8eef4;
+ border: solid 1px #e8eef4;
+}
+
+/* MISC
+----------------------------------------------------------*/
+.clear
+{
+ clear: both;
+}
+
+.error
+{
+ color:Red;
+}
+
+#menucontainer
+{
+ margin-top:40px;
+}
+
+div#title
+{
+ display:block;
+ float:left;
+ text-align:left;
+}
+
+#logindisplay
+{
+ font-size:1.1em;
+ display:block;
+ text-align:right;
+ margin:10px;
+ color:White;
+}
+
+#logindisplay a:link
+{
+ color: white;
+ text-decoration: underline;
+}
+
+#logindisplay a:visited
+{
+ color: white;
+ text-decoration: underline;
+}
+
+#logindisplay a:hover
+{
+ color: white;
+ text-decoration: none;
+}
+
+/* Styles for validation helpers
+-----------------------------------------------------------*/
+.field-validation-error
+{
+ color: #ff0000;
+}
+
+.field-validation-valid
+{
+ display: none;
+}
+
+.input-validation-error
+{
+ border: 1px solid #ff0000;
+ background-color: #ffeeee;
+}
+
+.validation-summary-errors
+{
+ font-weight: bold;
+ color: #ff0000;
+}
+
+.validation-summary-valid
+{
+ display: none;
+}
+
+/* Styles for editor and display helpers
+----------------------------------------------------------*/
+.display-label,
+.editor-label,
+.display-field,
+.editor-field
+{
+ margin: 0.5em 0;
+}
+
+.text-box
+{
+ width: 30em;
+}
+
+.text-box.multi-line
+{
+ height: 6.5em;
+}
+
+.tri-state
+{
+ width: 6em;
+}
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/AccountController.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/AccountController.cs?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/AccountController.cs
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/AccountController.cs
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,153 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Security.Principal;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Routing;
+using System.Web.Security;
+using NPanday330MVC2010ProjectTest.Models;
+
+namespace NPanday330MVC2010ProjectTest.Controllers
+{
+
+ [HandleError]
+ public class AccountController : Controller
+ {
+
+ public IFormsAuthenticationService FormsService { get; set; }
+ public IMembershipService MembershipService { get; set; }
+
+ protected override void Initialize(RequestContext requestContext)
+ {
+ if (FormsService == null) { FormsService = new
FormsAuthenticationService(); }
+ if (MembershipService == null) { MembershipService = new
AccountMembershipService(); }
+
+ base.Initialize(requestContext);
+ }
+
+ // **************************************
+ // URL: /Account/LogOn
+ // **************************************
+
+ public ActionResult LogOn()
+ {
+ return View();
+ }
+
+ [HttpPost]
+ public ActionResult LogOn(LogOnModel model, string returnUrl)
+ {
+ if (ModelState.IsValid)
+ {
+ if (MembershipService.ValidateUser(model.UserName,
model.Password))
+ {
+ FormsService.SignIn(model.UserName, model.RememberMe);
+ if (!String.IsNullOrEmpty(returnUrl))
+ {
+ return Redirect(returnUrl);
+ }
+ else
+ {
+ return RedirectToAction("Index", "Home");
+ }
+ }
+ else
+ {
+ ModelState.AddModelError("", "The user name or password
provided is incorrect.");
+ }
+ }
+
+ // If we got this far, something failed, redisplay form
+ return View(model);
+ }
+
+ // **************************************
+ // URL: /Account/LogOff
+ // **************************************
+
+ public ActionResult LogOff()
+ {
+ FormsService.SignOut();
+
+ return RedirectToAction("Index", "Home");
+ }
+
+ // **************************************
+ // URL: /Account/Register
+ // **************************************
+
+ public ActionResult Register()
+ {
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+ return View();
+ }
+
+ [HttpPost]
+ public ActionResult Register(RegisterModel model)
+ {
+ if (ModelState.IsValid)
+ {
+ // Attempt to register the user
+ MembershipCreateStatus createStatus =
MembershipService.CreateUser(model.UserName, model.Password, model.Email);
+
+ if (createStatus == MembershipCreateStatus.Success)
+ {
+ FormsService.SignIn(model.UserName, false /*
createPersistentCookie */);
+ return RedirectToAction("Index", "Home");
+ }
+ else
+ {
+ ModelState.AddModelError("",
AccountValidation.ErrorCodeToString(createStatus));
+ }
+ }
+
+ // If we got this far, something failed, redisplay form
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+ return View(model);
+ }
+
+ // **************************************
+ // URL: /Account/ChangePassword
+ // **************************************
+
+ [Authorize]
+ public ActionResult ChangePassword()
+ {
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+ return View();
+ }
+
+ [Authorize]
+ [HttpPost]
+ public ActionResult ChangePassword(ChangePasswordModel model)
+ {
+ if (ModelState.IsValid)
+ {
+ if (MembershipService.ChangePassword(User.Identity.Name,
model.OldPassword, model.NewPassword))
+ {
+ return RedirectToAction("ChangePasswordSuccess");
+ }
+ else
+ {
+ ModelState.AddModelError("", "The current password is
incorrect or the new password is invalid.");
+ }
+ }
+
+ // If we got this far, something failed, redisplay form
+ ViewData["PasswordLength"] = MembershipService.MinPasswordLength;
+ return View(model);
+ }
+
+ // **************************************
+ // URL: /Account/ChangePasswordSuccess
+ // **************************************
+
+ public ActionResult ChangePasswordSuccess()
+ {
+ return View();
+ }
+
+ }
+}
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/HomeController.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/HomeController.cs?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/HomeController.cs
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Controllers/HomeController.cs
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+
+namespace NPanday330MVC2010ProjectTest.Controllers
+{
+ [HandleError]
+ public class HomeController : Controller
+ {
+ public ActionResult Index()
+ {
+ ViewData["Message"] = "Welcome to ASP.NET MVC!";
+
+ return View();
+ }
+
+ public ActionResult About()
+ {
+ return View();
+ }
+ }
+}
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax
Wed Oct 20 05:14:10 2010
@@ -0,0 +1 @@
+<%@ Application Codebehind="Global.asax.cs"
Inherits="NPanday330MVC2010ProjectTest.MvcApplication" Language="C#" %>
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax.cs?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax.cs
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Global.asax.cs
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Routing;
+
+namespace NPanday330MVC2010ProjectTest
+{
+ // Note: For instructions on enabling IIS6 or IIS7 classic mode,
+ // visit http://go.microsoft.com/?LinkId=9394801
+
+ public class MvcApplication : System.Web.HttpApplication
+ {
+ public static void RegisterRoutes(RouteCollection routes)
+ {
+ routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
+
+ routes.MapRoute(
+ "Default", // Route name
+ "{controller}/{action}/{id}", // URL with parameters
+ new { controller = "Home", action = "Index", id =
UrlParameter.Optional } // Parameter defaults
+ );
+
+ }
+
+ protected void Application_Start()
+ {
+ AreaRegistration.RegisterAllAreas();
+
+ RegisterRoutes(RouteTable.Routes);
+ }
+ }
+}
\ No newline at end of file
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/AccountModels.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/AccountModels.cs?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/AccountModels.cs
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Models/AccountModels.cs
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,283 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using System.Globalization;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using System.Web.Security;
+
+namespace NPanday330MVC2010ProjectTest.Models
+{
+
+ #region Models
+ [PropertiesMustMatch("NewPassword", "ConfirmPassword", ErrorMessage = "The
new password and confirmation password do not match.")]
+ public class ChangePasswordModel
+ {
+ [Required]
+ [DataType(DataType.Password)]
+ [DisplayName("Current password")]
+ public string OldPassword { get; set; }
+
+ [Required]
+ [ValidatePasswordLength]
+ [DataType(DataType.Password)]
+ [DisplayName("New password")]
+ public string NewPassword { get; set; }
+
+ [Required]
+ [DataType(DataType.Password)]
+ [DisplayName("Confirm new password")]
+ public string ConfirmPassword { get; set; }
+ }
+
+ public class LogOnModel
+ {
+ [Required]
+ [DisplayName("User name")]
+ public string UserName { get; set; }
+
+ [Required]
+ [DataType(DataType.Password)]
+ [DisplayName("Password")]
+ public string Password { get; set; }
+
+ [DisplayName("Remember me?")]
+ public bool RememberMe { get; set; }
+ }
+
+ [PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "The
password and confirmation password do not match.")]
+ public class RegisterModel
+ {
+ [Required]
+ [DisplayName("User name")]
+ public string UserName { get; set; }
+
+ [Required]
+ [DataType(DataType.EmailAddress)]
+ [DisplayName("Email address")]
+ public string Email { get; set; }
+
+ [Required]
+ [ValidatePasswordLength]
+ [DataType(DataType.Password)]
+ [DisplayName("Password")]
+ public string Password { get; set; }
+
+ [Required]
+ [DataType(DataType.Password)]
+ [DisplayName("Confirm password")]
+ public string ConfirmPassword { get; set; }
+ }
+ #endregion
+
+ #region Services
+ // The FormsAuthentication type is sealed and contains static members, so
it is difficult to
+ // unit test code that calls its members. The interface and helper class
below demonstrate
+ // how to create an abstract wrapper around such a type in order to make
the AccountController
+ // code unit testable.
+
+ public interface IMembershipService
+ {
+ int MinPasswordLength { get; }
+
+ bool ValidateUser(string userName, string password);
+ MembershipCreateStatus CreateUser(string userName, string password,
string email);
+ bool ChangePassword(string userName, string oldPassword, string
newPassword);
+ }
+
+ public class AccountMembershipService : IMembershipService
+ {
+ private readonly MembershipProvider _provider;
+
+ public AccountMembershipService()
+ : this(null)
+ {
+ }
+
+ public AccountMembershipService(MembershipProvider provider)
+ {
+ _provider = provider ?? Membership.Provider;
+ }
+
+ public int MinPasswordLength
+ {
+ get
+ {
+ return _provider.MinRequiredPasswordLength;
+ }
+ }
+
+ public bool ValidateUser(string userName, string password)
+ {
+ if (String.IsNullOrEmpty(userName)) throw new
ArgumentException("Value cannot be null or empty.", "userName");
+ if (String.IsNullOrEmpty(password)) throw new
ArgumentException("Value cannot be null or empty.", "password");
+
+ return _provider.ValidateUser(userName, password);
+ }
+
+ public MembershipCreateStatus CreateUser(string userName, string
password, string email)
+ {
+ if (String.IsNullOrEmpty(userName)) throw new
ArgumentException("Value cannot be null or empty.", "userName");
+ if (String.IsNullOrEmpty(password)) throw new
ArgumentException("Value cannot be null or empty.", "password");
+ if (String.IsNullOrEmpty(email)) throw new
ArgumentException("Value cannot be null or empty.", "email");
+
+ MembershipCreateStatus status;
+ _provider.CreateUser(userName, password, email, null, null, true,
null, out status);
+ return status;
+ }
+
+ public bool ChangePassword(string userName, string oldPassword, string
newPassword)
+ {
+ if (String.IsNullOrEmpty(userName)) throw new
ArgumentException("Value cannot be null or empty.", "userName");
+ if (String.IsNullOrEmpty(oldPassword)) throw new
ArgumentException("Value cannot be null or empty.", "oldPassword");
+ if (String.IsNullOrEmpty(newPassword)) throw new
ArgumentException("Value cannot be null or empty.", "newPassword");
+
+ // The underlying ChangePassword() will throw an exception rather
+ // than return false in certain failure scenarios.
+ try
+ {
+ MembershipUser currentUser = _provider.GetUser(userName, true
/* userIsOnline */);
+ return currentUser.ChangePassword(oldPassword, newPassword);
+ }
+ catch (ArgumentException)
+ {
+ return false;
+ }
+ catch (MembershipPasswordException)
+ {
+ return false;
+ }
+ }
+ }
+
+ public interface IFormsAuthenticationService
+ {
+ void SignIn(string userName, bool createPersistentCookie);
+ void SignOut();
+ }
+
+ public class FormsAuthenticationService : IFormsAuthenticationService
+ {
+ public void SignIn(string userName, bool createPersistentCookie)
+ {
+ if (String.IsNullOrEmpty(userName)) throw new
ArgumentException("Value cannot be null or empty.", "userName");
+
+ FormsAuthentication.SetAuthCookie(userName,
createPersistentCookie);
+ }
+
+ public void SignOut()
+ {
+ FormsAuthentication.SignOut();
+ }
+ }
+ #endregion
+
+ #region Validation
+ public static class AccountValidation
+ {
+ public static string ErrorCodeToString(MembershipCreateStatus
createStatus)
+ {
+ // See http://go.microsoft.com/fwlink/?LinkID=177550 for
+ // a full list of status codes.
+ switch (createStatus)
+ {
+ case MembershipCreateStatus.DuplicateUserName:
+ return "Username already exists. Please enter a different
user name.";
+
+ case MembershipCreateStatus.DuplicateEmail:
+ return "A username for that e-mail address already exists.
Please enter a different e-mail address.";
+
+ case MembershipCreateStatus.InvalidPassword:
+ return "The password provided is invalid. Please enter a
valid password value.";
+
+ case MembershipCreateStatus.InvalidEmail:
+ return "The e-mail address provided is invalid. Please
check the value and try again.";
+
+ case MembershipCreateStatus.InvalidAnswer:
+ return "The password retrieval answer provided is invalid.
Please check the value and try again.";
+
+ case MembershipCreateStatus.InvalidQuestion:
+ return "The password retrieval question provided is
invalid. Please check the value and try again.";
+
+ case MembershipCreateStatus.InvalidUserName:
+ return "The user name provided is invalid. Please check
the value and try again.";
+
+ case MembershipCreateStatus.ProviderError:
+ return "The authentication provider returned an error.
Please verify your entry and try again. If the problem persists, please contact
your system administrator.";
+
+ case MembershipCreateStatus.UserRejected:
+ return "The user creation request has been canceled.
Please verify your entry and try again. If the problem persists, please contact
your system administrator.";
+
+ default:
+ return "An unknown error occurred. Please verify your
entry and try again. If the problem persists, please contact your system
administrator.";
+ }
+ }
+ }
+
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited =
true)]
+ public sealed class PropertiesMustMatchAttribute : ValidationAttribute
+ {
+ private const string _defaultErrorMessage = "'{0}' and '{1}' do not
match.";
+ private readonly object _typeId = new object();
+
+ public PropertiesMustMatchAttribute(string originalProperty, string
confirmProperty)
+ : base(_defaultErrorMessage)
+ {
+ OriginalProperty = originalProperty;
+ ConfirmProperty = confirmProperty;
+ }
+
+ public string ConfirmProperty { get; private set; }
+ public string OriginalProperty { get; private set; }
+
+ public override object TypeId
+ {
+ get
+ {
+ return _typeId;
+ }
+ }
+
+ public override string FormatErrorMessage(string name)
+ {
+ return String.Format(CultureInfo.CurrentUICulture,
ErrorMessageString,
+ OriginalProperty, ConfirmProperty);
+ }
+
+ public override bool IsValid(object value)
+ {
+ PropertyDescriptorCollection properties =
TypeDescriptor.GetProperties(value);
+ object originalValue = properties.Find(OriginalProperty, true /*
ignoreCase */).GetValue(value);
+ object confirmValue = properties.Find(ConfirmProperty, true /*
ignoreCase */).GetValue(value);
+ return Object.Equals(originalValue, confirmValue);
+ }
+ }
+
+ [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
AllowMultiple = false, Inherited = true)]
+ public sealed class ValidatePasswordLengthAttribute : ValidationAttribute
+ {
+ private const string _defaultErrorMessage = "'{0}' must be at least
{1} characters long.";
+ private readonly int _minCharacters =
Membership.Provider.MinRequiredPasswordLength;
+
+ public ValidatePasswordLengthAttribute()
+ : base(_defaultErrorMessage)
+ {
+ }
+
+ public override string FormatErrorMessage(string name)
+ {
+ return String.Format(CultureInfo.CurrentUICulture,
ErrorMessageString,
+ name, _minCharacters);
+ }
+
+ public override bool IsValid(object value)
+ {
+ string valueAsString = value as string;
+ return (valueAsString != null && valueAsString.Length >=
_minCharacters);
+ }
+ }
+ #endregion
+
+}
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest.csproj
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest.csproj?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest.csproj
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest.csproj
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>
+ </ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{D3C6D785-0526-410F-A215-D74260428317}</ProjectGuid>
+
<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>NPanday330MVC2010ProjectTest</RootNamespace>
+ <AssemblyName>NPanday330MVC2010ProjectTest</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <MvcBuildViews>false</MvcBuildViews>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'
">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ==
'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Drawing" />
+ <Reference Include="System.Web.DynamicData" />
+ <Reference Include="System.Web.Entity" />
+ <Reference Include="System.Web.ApplicationServices" />
+ <Reference Include="System.ComponentModel.DataAnnotations">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Data.DataSetExtensions">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
+ <Reference Include="System.Xml.Linq">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Web" />
+ <Reference Include="System.Web.Extensions">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Web.Abstractions" />
+ <Reference Include="System.Web.Routing" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Configuration" />
+ <Reference Include="System.Web.Services" />
+ <Reference Include="System.EnterpriseServices" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Controllers\AccountController.cs" />
+ <Compile Include="Controllers\HomeController.cs" />
+ <Compile Include="Global.asax.cs">
+ <DependentUpon>Global.asax</DependentUpon>
+ </Compile>
+ <Compile Include="Models\AccountModels.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="Global.asax" />
+ <Content Include="Web.config" />
+ <Content Include="Web.Debug.config">
+ <DependentUpon>Web.config</DependentUpon>
+ </Content>
+ <Content Include="Web.Release.config">
+ <DependentUpon>Web.config</DependentUpon>
+ </Content>
+ <Content Include="Content\Site.css" />
+ <Content Include="Scripts\jquery-1.4.1.js" />
+ <Content Include="Scripts\jquery-1.4.1.min.js" />
+ <Content Include="Scripts\jquery-1.4.1-vsdoc.js" />
+ <Content Include="Scripts\jquery.validate.js" />
+ <Content Include="Scripts\jquery.validate.min.js" />
+ <Content Include="Scripts\jquery.validate-vsdoc.js" />
+ <Content Include="Scripts\MicrosoftAjax.js" />
+ <Content Include="Scripts\MicrosoftAjax.debug.js" />
+ <Content Include="Scripts\MicrosoftMvcAjax.js" />
+ <Content Include="Scripts\MicrosoftMvcAjax.debug.js" />
+ <Content Include="Scripts\MicrosoftMvcValidation.js" />
+ <Content Include="Scripts\MicrosoftMvcValidation.debug.js" />
+ <Content Include="Views\Account\ChangePassword.aspx" />
+ <Content Include="Views\Account\ChangePasswordSuccess.aspx" />
+ <Content Include="Views\Account\LogOn.aspx" />
+ <Content Include="Views\Account\Register.aspx" />
+ <Content Include="Views\Home\About.aspx" />
+ <Content Include="Views\Home\Index.aspx" />
+ <Content Include="Views\Shared\Error.aspx" />
+ <Content Include="Views\Shared\LogOnUserControl.ascx" />
+ <Content Include="Views\Shared\Site.Master" />
+ <Content Include="Views\Web.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="App_Data\" />
+ </ItemGroup>
+ <ItemGroup>
+ <WebReferences Include="Web References\" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"
/>
+ <!-- To modify your build process, add your task inside one of the targets
below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target> -->
+ <Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
+ <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)" />
+ </Target>
+ <ProjectExtensions>
+ <VisualStudio>
+ <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+ <WebProjectProperties>
+ <UseIIS>False</UseIIS>
+ <AutoAssignPort>True</AutoAssignPort>
+ <DevelopmentServerPort>53492</DevelopmentServerPort>
+ <DevelopmentServerVPath>/</DevelopmentServerVPath>
+ <IISUrl>
+ </IISUrl>
+ <NTLMAuthentication>False</NTLMAuthentication>
+ <UseCustomServer>False</UseCustomServer>
+ <CustomServerUrl>
+ </CustomServerUrl>
+ <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+ </WebProjectProperties>
+ </FlavorProperties>
+ </VisualStudio>
+ </ProjectExtensions>
+</Project>
\ No newline at end of file
Added:
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/AssemblyInfo.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/AssemblyInfo.cs?rev=1024525&view=auto
==============================================================================
---
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/AssemblyInfo.cs
(added)
+++
incubator/npanday/npanday-its/trunk/src/test/resources/NPanday330MVC2010ProjectTest/NPanday330MVC2010ProjectTest/Properties/AssemblyInfo.cs
Wed Oct 20 05:14:10 2010
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 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("NPanday330MVC2010ProjectTest")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("NPanday330MVC2010ProjectTest")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed
to COM
+[assembly: Guid("d5dd4ab7-30cd-4ca2-9dcf-25e3eb882db4")]
+
+// 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.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]