本文整理汇总了C#中System.Web.WebPages.Deployment.Test.TestFileSystem类的典型用法代码示例。如果您正苦于以下问题:C# TestFileSystem类的具体用法?C# TestFileSystem怎么用?C# TestFileSystem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TestFileSystem类属于System.Web.WebPages.Deployment.Test命名空间,在下文中一共展示了TestFileSystem类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetVersionFromBinReturnsNullIfNoFileWithDeploymentAssemblyNameIsFoundInBin
public void GetVersionFromBinReturnsNullIfNoFileWithDeploymentAssemblyNameIsFoundInBin()
{
// Arrange
var binDirectory = @"X:\test\project";
TestFileSystem fileSystem = new TestFileSystem();
// Act
var binVersion = AssemblyUtils.GetVersionFromBin(binDirectory, fileSystem, getAssemblyNameThunk: null);
// Assert
Assert.Null(binVersion);
}
示例2: GetVersionFromBinReturnsVersionFromBinIfLower
public void GetVersionFromBinReturnsVersionFromBinIfLower()
{
// Arrange
var binDirectory = @"X:\test\project";
TestFileSystem fileSystem = new TestFileSystem();
fileSystem.AddFile(Path.Combine(binDirectory, "System.Web.WebPages.Deployment.dll"));
Func<string, AssemblyName> getAssembyName = _ => new AssemblyName("System.Web.WebPages.Deployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
// Act
var binVersion = AssemblyUtils.GetVersionFromBin(binDirectory, fileSystem, getAssembyName);
// Assert
Assert.Equal(new Version("1.0.0.0"), binVersion);
}
示例3: PreApplicationStartCodeDoesNothingIfWebPagesIsExplicitlyDisabled
public void PreApplicationStartCodeDoesNothingIfWebPagesIsExplicitlyDisabled()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("1", "2");
var fileSystem = new TestFileSystem();
var buildManager = new TestBuildManager();
var nameValueCollection = GetAppSettings(enabled: false, webPagesVersion: null);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Act
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", "bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, null);
// Assert
Assert.False(loaded);
Assert.Null(loadedVersion);
Assert.False(registeredForChangeNotification);
Assert.Equal(0, buildManager.Stream.Length);
}
示例4: GetAssemblies
public void PreApplicationStartCodeDoesNotLoadCurrentWebPagesIfOnlyVersionIsListedInConfigAndNoFilesAreFoundInSiteRoot()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
Version webPagesVersion = AssemblyUtils.ThisAssemblyName.Version;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("2.1.0.0");
var fileSystem = new TestFileSystem();
var buildManager = new TestBuildManager();
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: webPagesVersion);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Arrange
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", "bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, null);
// Assert
Assert.False(loaded);
Assert.Null(loadedVersion);
Assert.True(registeredForChangeNotification);
Assert.Equal(0, buildManager.Stream.Length);
}
示例5: PreApplicationStartCodeUsesVersionSpecifiedInConfigIfWebPagesIsImplicitlyEnabled
public void PreApplicationStartCodeUsesVersionSpecifiedInConfigIfWebPagesIsImplicitlyEnabled()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("1.12.123.1234", "2.1.0.0");
Version webPagesVersion = new Version("1.12.123.1234");
var fileSystem = new TestFileSystem();
fileSystem.AddFile("Default.cshtml");
var buildManager = new TestBuildManager();
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: webPagesVersion);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Act
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", "bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, getAssemblyNameThunk: null);
// Assert
Assert.True(loaded);
Assert.Equal(webPagesVersion, loadedVersion);
Assert.False(registeredForChangeNotification);
VerifyVersionFile(buildManager, webPagesVersion);
}
示例6: PreApplicationStartCodeThrowsIfVersionSpecifiedInConfigIsNotAvailable
public void PreApplicationStartCodeThrowsIfVersionSpecifiedInConfigIsNotAvailable()
{
// Arrange
Version loadedVersion = null;
var binDirectory = DeploymentUtil.GetBinDirectory();
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("1.0.0.0", AssemblyUtils.ThisAssemblyName.Version.ToString());
var fileSystem = new TestFileSystem();
fileSystem.AddFile("Index.cshtml");
var buildManager = new TestBuildManager();
var content = AssemblyUtils.ThisAssemblyName.Version + Environment.NewLine;
buildManager.Stream = new MemoryStream(Encoding.Default.GetBytes(content));
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: new Version("1.5"));
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { };
// Act and Assert
Assert.Throws<InvalidOperationException>(() =>
PreApplicationStartCode.StartCore(fileSystem, "", binDirectory, nameValueCollection, loadedAssemblies, buildManager: buildManager, loadWebPages: loadWebPages, registerForChangeNotification: registerForChange, getAssemblyNameThunk: null),
String.Format("Specified Web Pages version \"1.5.0.0\" could not be found. Update your web.config to specify a different version. Current version: \"{0}\".",
AssemblyUtils.ThisAssemblyName.Version));
}
示例7: PreApplicationStartCodeThrowsIfVersionIsSpecifiedInConfigAndDifferentVersionExistsInBin
public void PreApplicationStartCodeThrowsIfVersionIsSpecifiedInConfigAndDifferentVersionExistsInBin()
{
// Arrange
Version loadedVersion = null;
var binDirectory = DeploymentUtil.GetBinDirectory();
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("1.0.0.0", AssemblyUtils.ThisAssemblyName.Version.ToString());
var fileSystem = new TestFileSystem();
fileSystem.AddFile("Index.cshtml");
fileSystem.AddFile(Path.Combine(binDirectory, "System.Web.WebPages.Deployment.dll"));
var buildManager = new TestBuildManager();
var content = AssemblyUtils.ThisAssemblyName.Version + Environment.NewLine;
buildManager.Stream = new MemoryStream(Encoding.Default.GetBytes(content));
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: new Version("1.0.0"));
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { };
Func<string, AssemblyName> getAssembyName = _ => new AssemblyName("System.Web.WebPages.Deployment, Version=" + AssemblyUtils.ThisAssemblyName.Version + ", Culture=neutral, PublicKeyToken=31bf3856ad364e35");
// Act and Assert
Assert.Throws<InvalidOperationException>(() =>
PreApplicationStartCode.StartCore(fileSystem, "", binDirectory, nameValueCollection, loadedAssemblies, buildManager: buildManager, loadWebPages: loadWebPages, registerForChangeNotification: registerForChange, getAssemblyNameThunk: getAssembyName),
String.Format(@"Conflicting versions of ASP.NET Web Pages detected: specified version is ""1.0.0.0"", but the version in bin is ""{0}"". To continue, remove files from the application's bin directory or remove the version specification in web.config.",
AssemblyUtils.ThisAssemblyName.Version));
}
示例8: PreApplicationStartCodeDoesNotForceRecompileIfNewVersionIsV1AndCurrentAssemblyIsNotMaxVersion
public void PreApplicationStartCodeDoesNotForceRecompileIfNewVersionIsV1AndCurrentAssemblyIsNotMaxVersion()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("2.1.0.0", "5.0.0.0");
var fileSystem = new TestFileSystem();
fileSystem.AddFile("Index.cshtml");
var buildManager = new TestBuildManager();
var content = AssemblyUtils.ThisAssemblyName.Version + Environment.NewLine;
buildManager.Stream = new MemoryStream(Encoding.Default.GetBytes(content));
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: new Version("1.0.0"));
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Act
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", @"site\bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, null);
// Assert
Assert.False(loaded);
Assert.False(registeredForChangeNotification);
VerifyVersionFile(buildManager, AssemblyUtils.ThisAssemblyName.Version);
Assert.False(fileSystem.FileExists(@"site\bin\WebPagesRecompilation.deleteme"));
}
示例9: GetVersionFromBinReturnsVersionFromBinIfSameVersion
public void GetVersionFromBinReturnsVersionFromBinIfSameVersion()
{
// Arrange
var binDirectory = @"X:\test\project";
TestFileSystem fileSystem = new TestFileSystem();
fileSystem.AddFile(Path.Combine(binDirectory, "System.Web.WebPages.Deployment.dll"));
Func<string, AssemblyName> getAssembyName = _ => new AssemblyName(LatestAssemblyName());
// Act
var binVersion = AssemblyUtils.GetVersionFromBin(binDirectory, fileSystem, getAssembyName);
// Assert
Assert.Equal(LatestRazorVersion.LatestVersion, binVersion);
}
示例10: ObsoleteGetVersionReturnsV1VersionIfNoValueInConfigNoFilesInBinSiteContainsCshtmlFiles
public void ObsoleteGetVersionReturnsV1VersionIfNoValueInConfigNoFilesInBinSiteContainsCshtmlFiles()
{
// Arrange
var path = "blah";
var fileSystem = new TestFileSystem();
fileSystem.AddFile(@"blah\Foo.cshtml");
var configuration = new NameValueCollection();
// Act
var version = WebPagesDeployment.GetObsoleteVersionInternal(path, configuration, fileSystem);
// Assert
Assert.Equal(new Version("1.0.0.0"), version);
}
示例11: PreApplicationStartCodeDoesNotLoadIfAHigherVersionIsAvailableInBin
public void PreApplicationStartCodeDoesNotLoadIfAHigherVersionIsAvailableInBin()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("2.1.0.0", "8.0.0.0");
var binDirectory = DeploymentUtil.GetBinDirectory();
var fileSystem = new TestFileSystem();
fileSystem.AddFile("Index.cshtml");
fileSystem.AddFile(Path.Combine(binDirectory, "System.Web.WebPages.Deployment.dll"));
var buildManager = new TestBuildManager();
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: null);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
Func<string, AssemblyName> getAssembyName = _ => new AssemblyName("System.Web.WebPages.Deployment, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
// Act
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", binDirectory, nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, getAssembyName);
// Assert
Assert.False(loaded);
Assert.Null(loadedVersion);
Assert.False(registeredForChangeNotification);
Assert.Equal(0, buildManager.Stream.Length);
}
示例12: PreApplicationStartCodeThrowsIfNoVersionIsSpecifiedAndV1IsNotAvailable
public void PreApplicationStartCodeThrowsIfNoVersionIsSpecifiedAndV1IsNotAvailable()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
var webPagesVersion = AssemblyUtils.ThisAssemblyName.Version;
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("2.1.0.0");
// Note: For this test to work with future versions we would need to create corresponding embedded resources with that version in it.
var fileSystem = new TestFileSystem();
var buildManager = new TestBuildManager();
fileSystem.AddFile("Index.cshtml");
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: null);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Act and Assert
Assert.Throws<InvalidOperationException>(() =>
PreApplicationStartCode.StartCore(fileSystem, "", "bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, null),
@"Could not determine which version of ASP.NET Web Pages to use.
In order to use this site, specify a version in the site’s web.config file. For more information, see the following article on the Microsoft support site: http://go.microsoft.com/fwlink/?LinkId=254126");
Assert.False(registeredForChangeNotification);
Assert.Equal(0, buildManager.Stream.Length);
}
示例13: PreApplicationStartCodeLoadsV1IfNoVersionIsSpecifiedAndCurrentAssemblyIsTheMaximumVersionAvailable
public void PreApplicationStartCodeLoadsV1IfNoVersionIsSpecifiedAndCurrentAssemblyIsTheMaximumVersionAvailable()
{
// Arrange
Version loadedVersion = null;
bool registeredForChangeNotification = false;
var webPagesVersion = AssemblyUtils.ThisAssemblyName.Version;
var v1Version = new Version("1.0.0.0");
IEnumerable<AssemblyName> loadedAssemblies = GetAssemblies("1.0.0.0", "2.1.0.0");
// Note: For this test to work with future versions we would need to create corresponding embedded resources with that version in it.
var fileSystem = new TestFileSystem();
var buildManager = new TestBuildManager();
fileSystem.AddFile("Index.cshtml");
var nameValueCollection = GetAppSettings(enabled: null, webPagesVersion: null);
Action<Version> loadWebPages = (version) => { loadedVersion = version; };
Action registerForChange = () => { registeredForChangeNotification = true; };
// Act
bool loaded = PreApplicationStartCode.StartCore(fileSystem, "", "bin", nameValueCollection, loadedAssemblies, buildManager, loadWebPages, registerForChange, null);
// Assert
Assert.True(loaded);
Assert.Equal(v1Version, loadedVersion);
Assert.False(registeredForChangeNotification);
VerifyVersionFile(buildManager, v1Version);
}
示例14: GetVersionFromBinReturnsNullIfFileInBinIsNotAValidBinary
public void GetVersionFromBinReturnsNullIfFileInBinIsNotAValidBinary()
{
// Arrange
var binDirectory = @"X:\test\project";
TestFileSystem fileSystem = new TestFileSystem();
fileSystem.AddFile(Path.Combine(binDirectory, "System.Web.WebPages.Deployment.dll"));
Func<string, AssemblyName> getAssembyName = _ => { throw new FileLoadException(); };
// Act
var binVersion = AssemblyUtils.GetVersionFromBin(binDirectory, fileSystem, getAssembyName);
// Assert
Assert.Null(binVersion);
}
示例15: ObsoleteGetVersionThrowsIfPathIsNullOrEmpty
public void ObsoleteGetVersionThrowsIfPathIsNullOrEmpty(string path)
{
// Arrange
var fileSystem = new TestFileSystem();
var configuration = new NameValueCollection();
// Act and Assert
Assert.ThrowsArgumentNullOrEmptyString(() => WebPagesDeployment.GetObsoleteVersionInternal(path, configuration, fileSystem), "path");
}