From a16cada89627d2fdea47406516e4604c0bf8305d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=92?= =?UTF-8?q?=D0=BB=D0=B0=D0=B4=D0=B8=D0=BC=D0=B8=D1=80?= Date: Thu, 27 Jan 2022 09:38:52 +0500 Subject: [PATCH] Added ClusterServiceTest --- .../ServicesTests/ClusterServiceTest.cs | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 AsbCloudWebApi.Tests/ServicesTests/ClusterServiceTest.cs diff --git a/AsbCloudWebApi.Tests/ServicesTests/ClusterServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/ClusterServiceTest.cs new file mode 100644 index 00000000..ce3c020b --- /dev/null +++ b/AsbCloudWebApi.Tests/ServicesTests/ClusterServiceTest.cs @@ -0,0 +1,151 @@ +using AsbCloudDb.Model; +using AsbCloudInfrastructure.Services; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Moq; +using Xunit; +using AsbCloudApp.Services; + +namespace AsbCloudWebApi.Tests.ServicesTests; + +public class ClusterServiceTest +{ + private readonly AsbCloudDbContext context; + private readonly Mock wellService; + + private readonly List deposits = new() + { + new Deposit { Id = 1, Caption = "Test deposit 1" }, + new Deposit { Id = 2, Caption = "Test deposit 2" }, + new Deposit { Id = 3, Caption = "Test deposit 3" }, + new Deposit { Id = 4, Caption = "Test deposit 4" }, + }; + + private readonly List clusters = new() + { + new Cluster { Id = 1, IdDeposit = 1 }, + new Cluster { Id = 2, IdDeposit = 1 }, + new Cluster { Id = 3, IdDeposit = 2 }, + new Cluster { Id = 4, IdDeposit = 2 }, + }; + + private readonly List wells = new() + { + new Well { Id = 1, IdCluster = 1 }, + new Well { Id = 2, IdCluster = 1 }, + new Well { Id = 3, IdCluster = 2 }, + new Well { Id = 4, IdCluster = 2 }, + }; + + private readonly List companies = new() + { + new Company { Id = 1 }, + new Company { Id = 2 } + }; + + private readonly List relations = new() + { + new RelationCompanyWell { IdCompany = 1, IdWell = 1 }, + new RelationCompanyWell { IdCompany = 1, IdWell = 2 } + }; + + public ClusterServiceTest() + { + context = TestHelpter.MakeTestContext(); + wellService = new Mock(); + context.Deposits.RemoveRange(deposits); + context.Clusters.RemoveRange(clusters); + context.Wells.RemoveRange(wells); + context.Companies.RemoveRange(companies); + context.RemoveRange(relations); + context.SaveChanges(); + context.Deposits.AddRange(deposits); + context.Clusters.AddRange(clusters); + context.Wells.AddRange(wells); + context.Companies.AddRange(companies); + context.AddRange(relations); + context.SaveChanges(); + } + + ~ClusterServiceTest() + { + context.Deposits.RemoveRange(context.Deposits.Where(u => u.Id > 1)); + context.Clusters.RemoveRange(context.Clusters.Where(u => u.Id > 1)); + context.Wells.RemoveRange(context.Wells.Where(u => u.Id > 1)); + context.Companies.RemoveRange(context.Companies.Where(u => u.Id > 1)); + context.RemoveRange(relations); + context.SaveChanges(); + } + + [Fact] + public async Task GetDepositsAsync_returns_depositDtos() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsAsync(1); + + Assert.True(dtos.Any()); + } + + [Fact] + public async Task GetDepositsAsync_returns_one_deposit() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsAsync(1); + + Assert.Equal(1, dtos.Count()); + } + + [Fact] + public async Task GetDepositsAsync_returns_one_deposit_with_two_companies() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsAsync(1); + + Assert.Equal(2, dtos.FirstOrDefault()?.Clusters.Count()); + } + [Fact] + public async Task GetDrillParamsAsync_returns_depositDtos() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsDrillParamsAsync(1); + + Assert.True(dtos.Any()); + } + + [Fact] + public async Task GetDrillParamsAsync_returns_one_deposit() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsDrillParamsAsync(1); + + Assert.Equal(1, dtos.Count()); + } + + [Fact] + public async Task GetDrillParamsAsync_returns_one_deposit_with_two_companies() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetDepositsDrillParamsAsync(1); + + Assert.Equal(2, dtos.FirstOrDefault()?.Clusters.Count()); + } + + [Fact] + public async Task GetClustersAsync_returns_dtos() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetClustersAsync(1); + + Assert.True(dtos.Any()); + } + + [Fact] + public async Task GetClustersAsync_returns_one_cluster() + { + var service = new ClusterService(context, wellService.Object); + var dtos = await service.GetClustersAsync(1); + + Assert.Equal(1, dtos.Count()); + } +} \ No newline at end of file