From 418c04807eae6220ef609a8c208d67c08cf7f723 Mon Sep 17 00:00:00 2001 From: transtrike Date: Sun, 28 Mar 2021 21:58:50 +0300 Subject: Added profile picture documentation --- .../DevHive.Services.Tests/ProfilePictureService.Tests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs (limited to 'src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs') diff --git a/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs b/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs new file mode 100644 index 0000000..691b8b5 --- /dev/null +++ b/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs @@ -0,0 +1,9 @@ +using System; + +namespace DevHive.Services.Tests +{ + public class ProfilePictureServiceTests + { + + } +} -- cgit v1.2.3 From d672c515eb760a5351affeb5600640569ed5ee16 Mon Sep 17 00:00:00 2001 From: transtrike Date: Tue, 30 Mar 2021 11:46:58 +0300 Subject: First test implementation and exploration --- .../ProfilePictureService.Tests.cs | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs') diff --git a/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs b/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs index 691b8b5..a7a2963 100644 --- a/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs +++ b/src/Services/DevHive.Services.Tests/ProfilePictureService.Tests.cs @@ -1,9 +1,84 @@ using System; +using System.IO; +using System.Threading.Tasks; +using DevHive.Data; +using DevHive.Data.Interfaces; +using DevHive.Data.Models; +using DevHive.Data.Repositories; +using DevHive.Services.Interfaces; +using DevHive.Services.Models.ProfilePicture; +using DevHive.Services.Services; +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; +using Moq; +using NUnit.Framework; namespace DevHive.Services.Tests { + [TestFixture] public class ProfilePictureServiceTests { + private DevHiveContext _context; + private Mock _userRepositoryMock; + private Mock _profilePictureRepository; + private Mock _cloudService; + private ProfilePictureService _profilePictureService; + [SetUp] + public void Setup() + { + DbContextOptionsBuilder options = new DbContextOptionsBuilder() + .UseInMemoryDatabase("DevHive_UserRepository_Database"); + this._context = new DevHiveContext(options.Options); + this._userRepositoryMock = new Mock(); + this._profilePictureRepository = new Mock(this._context); + this._cloudService = new Mock(); + + this._profilePictureService = new ProfilePictureService( + this._userRepositoryMock.Object, + this._profilePictureRepository.Object, + this._cloudService.Object + ); + } + + [Test] + public async Task InsertProfilePicture_ShouldInsertProfilePicToDatabaseAndUploadToCloud() + { + //Arrange + Guid userId = Guid.NewGuid(); + Mock fileMock = new(); + + //File mocking setup + var content = "Hello World from a Fake File"; + var fileName = "test.jpg"; + var ms = new MemoryStream(); + var writer = new StreamWriter(ms); + writer.Write(content); + writer.Flush(); + ms.Position = 0; + fileMock.Setup(p => p.FileName).Returns(fileName); + fileMock.Setup(p => p.Length).Returns(ms.Length); + fileMock.Setup(p => p.OpenReadStream()).Returns(ms); + + //User Setup + this._userRepositoryMock + .Setup(p => p.GetByIdAsync(userId)) + .ReturnsAsync(new User() + { + Id = userId + }); + + ProfilePictureServiceModel profilePictureServiceModel = new() + { + UserId = userId, + ProfilePictureFormFile = fileMock.Object + }; + + //Act + string profilePicURL = await this._profilePictureService.InsertProfilePicture(profilePictureServiceModel); + + //Assert + Assert.IsNotEmpty(profilePicURL); + } } } -- cgit v1.2.3