You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.5 KiB
146 lines
4.5 KiB
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) |
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) |
|
|
|
using System; |
|
using AspNet.Mvc.Tests.Helpers; |
|
using ICSharpCode.AspNet.Mvc; |
|
using ICSharpCode.SharpDevelop.Project; |
|
using NUnit.Framework; |
|
|
|
namespace AspNet.Mvc.Tests |
|
{ |
|
public class MvcProjectFileTests |
|
{ |
|
TestableProject project; |
|
MvcProjectFile file; |
|
|
|
void CreateProject(string fileName) |
|
{ |
|
project = TestableProject.CreateProject(fileName, "MyProject"); |
|
} |
|
|
|
MvcProjectFile CreateProjectFile(string fullPath) |
|
{ |
|
var projectItem = new FileProjectItem(project, ItemType.Compile); |
|
projectItem.FileName = fullPath; |
|
file = new MvcProjectFile(projectItem); |
|
return file; |
|
} |
|
|
|
[Test] |
|
public void FullPath_CreatedFromFileProjectItem_ReturnsFullFileNameIncludingFolder() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
string expectedFullPath = @"d:\projects\MyProject\Views\Shared\Site.Master"; |
|
CreateProjectFile(expectedFullPath); |
|
|
|
string fullPath = file.FullPath; |
|
|
|
Assert.AreEqual(expectedFullPath, fullPath); |
|
} |
|
|
|
[Test] |
|
public void FileName_CreatedFromFileProjectItem_ReturnsFileNameWithoutFolder() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectFile(@"d:\projects\MyProject\Views\Shared\Site.Master"); |
|
|
|
string fileName = file.FileName; |
|
|
|
Assert.AreEqual("Site.Master", fileName); |
|
} |
|
|
|
[Test] |
|
public void FolderRelativeToProject_CreatedFromFileProjectItem_ReturnsFileNameWithoutFolder() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectFile(@"d:\projects\MyProject\Views\Shared\Site.Master"); |
|
|
|
string folder = file.FolderRelativeToProject; |
|
|
|
Assert.AreEqual(@"Views\Shared", folder); |
|
} |
|
|
|
[Test] |
|
public void VirtualPath_CreatedFromFileProjectItem_ReturnsAspNetVirtualPathForFileName() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectFile(@"d:\projects\MyProject\Views\Shared\Site.Master"); |
|
|
|
string virtualPath = file.VirtualPath; |
|
|
|
Assert.AreEqual("~/Views/Shared/Site.Master", virtualPath); |
|
} |
|
|
|
[Test] |
|
public void VirtualPath_FileInProjectRootDirectory_ReturnsAspNetVirtualPathForFileName() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
CreateProjectFile(@"d:\projects\MyProject\Site.Master"); |
|
|
|
string virtualPath = file.VirtualPath; |
|
|
|
Assert.AreEqual("~/Site.Master", virtualPath); |
|
} |
|
|
|
[Test] |
|
public void CompareTo_FileNamesAreTheSame_ReturnsZero() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
MvcProjectFile lhs = CreateProjectFile(@"d:\projects\MyProject\Site.Master"); |
|
MvcProjectFile rhs = CreateProjectFile(@"d:\projects\MyProject\Site.Master"); |
|
|
|
int result = lhs.CompareTo(rhs); |
|
|
|
Assert.AreEqual(0, result); |
|
} |
|
|
|
[Test] |
|
public void CompareTo_FoldersAreSameAndSecondFileNameIsGreaterThanFirstFileName_ReturnsMinusOne() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
MvcProjectFile lhs = CreateProjectFile(@"d:\projects\MyProject\Shared\A.Master"); |
|
MvcProjectFile rhs = CreateProjectFile(@"d:\projects\MyProject\Shared\Z.Master"); |
|
|
|
int result = lhs.CompareTo(rhs); |
|
|
|
Assert.AreEqual(-1, result); |
|
} |
|
|
|
[Test] |
|
public void CompareTo_FoldersAreSameAndSecondFileNameIsLessThanFirstFileName_ReturnsPlusOne() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
MvcProjectFile lhs = CreateProjectFile(@"d:\projects\MyProject\Shared\Z.Master"); |
|
MvcProjectFile rhs = CreateProjectFile(@"d:\projects\MyProject\Shared\A.Master"); |
|
|
|
int result = lhs.CompareTo(rhs); |
|
|
|
Assert.AreEqual(1, result); |
|
} |
|
|
|
[Test] |
|
public void CompareTo_FileNamesAreSameAndSecondFolderIsLessThanFirstFolder_ReturnsPlusOne() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
MvcProjectFile lhs = CreateProjectFile(@"d:\projects\MyProject\Z\site.Master"); |
|
MvcProjectFile rhs = CreateProjectFile(@"d:\projects\MyProject\A\site.Master"); |
|
|
|
int result = lhs.CompareTo(rhs); |
|
|
|
Assert.AreEqual(1, result); |
|
} |
|
|
|
[Test] |
|
public void CompareTo_FileNamesAreSameAndSecondFolderIsGreaterThanFirstFolder_ReturnsMinussOne() |
|
{ |
|
CreateProject(@"d:\projects\MyProject\MyProject.csproj"); |
|
MvcProjectFile lhs = CreateProjectFile(@"d:\projects\MyProject\A\site.Master"); |
|
MvcProjectFile rhs = CreateProjectFile(@"d:\projects\MyProject\Z\site.Master"); |
|
|
|
int result = lhs.CompareTo(rhs); |
|
|
|
Assert.AreEqual(-1, result); |
|
} |
|
} |
|
}
|
|
|