adding integration tests
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using Infrastructure.FileSystem;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using System.IO;
|
||||
using Xunit;
|
||||
using Moq;
|
||||
|
||||
namespace IntegrationTests.Infrastructure.File
|
||||
{
|
||||
public class LocalFileImageServiceGetImageBytesById
|
||||
{
|
||||
private byte[] _testBytes = new byte[] { 0x01, 0x02, 0x03 };
|
||||
private readonly Mock<IHostingEnvironment> _mockEnvironment = new Mock<IHostingEnvironment>();
|
||||
private int _testImageId = 123;
|
||||
private string _testFileName = "123.png";
|
||||
|
||||
public LocalFileImageServiceGetImageBytesById()
|
||||
{
|
||||
// create folder if necessary
|
||||
Directory.CreateDirectory(Path.Combine(GetFileDirectory(), "Pics"));
|
||||
|
||||
string filePath = GetFilePath(_testFileName);
|
||||
System.IO.File.WriteAllBytes(filePath, _testBytes);
|
||||
_mockEnvironment.SetupGet<string>(m => m.ContentRootPath).Returns(GetFileDirectory());
|
||||
}
|
||||
|
||||
private string GetFilePath(string fileName)
|
||||
{
|
||||
return Path.Combine(GetFileDirectory(), "Pics", fileName);
|
||||
}
|
||||
|
||||
private string GetFileDirectory()
|
||||
{
|
||||
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
|
||||
return Path.GetDirectoryName(location);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ReturnsFileContentResultGivenValidId()
|
||||
{
|
||||
var fileService = new LocalFileImageService(_mockEnvironment.Object);
|
||||
|
||||
var result = fileService.GetImageBytesById(_testImageId);
|
||||
|
||||
Assert.Equal(_testBytes, result);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,8 @@
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
|
||||
<PackageReference Include="xunit" Version="2.2.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
||||
<PackageReference Include="Moq" Version="4.7.8" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user