61 lines
2.0 KiB
C#
61 lines
2.0 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.IO;
|
|
using Xunit;
|
|
|
|
namespace Microsoft.AspNetCore.Razor.Language
|
|
{
|
|
public class FileSystemRazorProjectItemTest
|
|
{
|
|
private static string TestFolder { get; } = Path.Combine(
|
|
TestProject.GetProjectDirectory(typeof(FileSystemRazorProjectItemTest)),
|
|
"TestFiles",
|
|
"FileSystemRazorProject");
|
|
|
|
[Fact]
|
|
public void FileSystemRazorProjectItem_SetsProperties()
|
|
{
|
|
// Arrange
|
|
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Home.cshtml"));
|
|
|
|
// Act
|
|
var projectItem = new FileSystemRazorProjectItem("/Views", "/Home.cshtml", fileInfo);
|
|
|
|
// Assert
|
|
Assert.Equal("/Home.cshtml", projectItem.FilePath);
|
|
Assert.Equal("/Views", projectItem.BasePath);
|
|
Assert.True(projectItem.Exists);
|
|
Assert.Equal("Home.cshtml", projectItem.FileName);
|
|
Assert.Equal(fileInfo.FullName, projectItem.PhysicalPath);
|
|
}
|
|
|
|
[Fact]
|
|
public void Exists_ReturnsFalseWhenFileDoesNotExist()
|
|
{
|
|
// Arrange
|
|
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Views", "FileDoesNotExist.cshtml"));
|
|
|
|
// Act
|
|
var projectItem = new FileSystemRazorProjectItem("/Views", "/FileDoesNotExist.cshtml", fileInfo);
|
|
|
|
// Assert
|
|
Assert.False(projectItem.Exists);
|
|
}
|
|
|
|
[Fact]
|
|
public void Read_ReturnsReadStream()
|
|
{
|
|
// Arrange
|
|
var fileInfo = new FileInfo(Path.Combine(TestFolder, "Home.cshtml"));
|
|
var projectItem = new FileSystemRazorProjectItem("/", "/Home.cshtml", fileInfo);
|
|
|
|
// Act
|
|
var stream = projectItem.Read();
|
|
|
|
// Assert
|
|
Assert.Equal("home-content", new StreamReader(stream).ReadToEnd());
|
|
}
|
|
}
|
|
}
|