#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
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

// 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);
}
}
}