diff --git a/MagicCarpetProject/MagicCarpetContracts/DataModels/SaleTourDataModel.cs b/MagicCarpetProject/MagicCarpetContracts/DataModels/SaleTourDataModel.cs index 3b1a75a..ec486c2 100644 --- a/MagicCarpetProject/MagicCarpetContracts/DataModels/SaleTourDataModel.cs +++ b/MagicCarpetProject/MagicCarpetContracts/DataModels/SaleTourDataModel.cs @@ -45,5 +45,8 @@ public class SaleTourDataModel(string saleId, string tourId, int count, double p if (Count <= 0) throw new ValidationException("Field Count is less than or equal to 0"); + + if (Price <= 0) + throw new ValidationException("Field Price is less than or equal to 0"); } } diff --git a/MagicCarpetProject/MagicCarpetContracts/DataModels/TourDataModel.cs b/MagicCarpetProject/MagicCarpetContracts/DataModels/TourDataModel.cs index 35ccfb7..04a7b05 100644 --- a/MagicCarpetProject/MagicCarpetContracts/DataModels/TourDataModel.cs +++ b/MagicCarpetProject/MagicCarpetContracts/DataModels/TourDataModel.cs @@ -18,7 +18,7 @@ public class TourDataModel(string id, string tourName, string tourCountry, doubl public string TourName { get; private set; } = tourName; public string TourCountry { get; private set; } = tourCountry; public double Price { get; private set; } = price; - public TourType Type { get; private set; } = tourType; + public TourType TourType { get; private set; } = tourType; public void Validate() { @@ -32,7 +32,7 @@ public class TourDataModel(string id, string tourName, string tourCountry, doubl throw new ValidationException("Field TourCountry is empty"); if (Price <= 0) throw new ValidationException("Field Price is less than or equal to 0"); - if (Type == TourType.None) + if (TourType == TourType.None) throw new ValidationException("Field Type is empty"); } } diff --git a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISalaryStorageContract.cs b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISalaryStorageContract.cs index e56c136..68f47db 100644 --- a/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISalaryStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetContracts/StoragesContracts/ISalaryStorageContract.cs @@ -9,7 +9,7 @@ namespace MagicCarpetContracts.StoragesContracts; public interface ISalaryStorageContract { - List GetList(DateTime startDate, DateTime endDate, string? employeeId = null); + List GetList(DateTime? startDate, DateTime? endDate, string? employeeId = null); void AddElement(SalaryDataModel salaryDataModel); } diff --git a/MagicCarpetProject/MagicCarpetDatabase/Implementations/EmployeeStorageContract.cs b/MagicCarpetProject/MagicCarpetDatabase/Implementations/EmployeeStorageContract.cs index 694ad11..e93b54e 100644 --- a/MagicCarpetProject/MagicCarpetDatabase/Implementations/EmployeeStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetDatabase/Implementations/EmployeeStorageContract.cs @@ -28,6 +28,7 @@ public class EmployeeStorageContract : IEmployeeStorageContract }); _mapper = new Mapper(config); } + public List GetList(bool onlyActive = true, string? postId = null, DateTime? fromBirthDate = null, DateTime? toBirthDate = null, DateTime? fromEmploymentDate = null, DateTime? toEmploymentDate = null) { try @@ -43,11 +44,11 @@ public class EmployeeStorageContract : IEmployeeStorageContract } if (fromBirthDate is not null && toBirthDate is not null) { - query = query.Where(x => x.BirthDate >= fromBirthDate && x.BirthDate <= toBirthDate); + query = query.Where(x => x.BirthDate >= DateTime.SpecifyKind(fromBirthDate ?? DateTime.UtcNow, DateTimeKind.Utc) && x.BirthDate <= DateTime.SpecifyKind(toBirthDate ?? DateTime.UtcNow, DateTimeKind.Utc)); } if (fromEmploymentDate is not null && toEmploymentDate is not null) { - query = query.Where(x => x.EmploymentDate >= fromEmploymentDate && x.EmploymentDate <= toEmploymentDate); + query = query.Where(x => x.EmploymentDate >= DateTime.SpecifyKind(fromEmploymentDate ?? DateTime.UtcNow, DateTimeKind.Utc) && x.EmploymentDate <= DateTime.SpecifyKind(toEmploymentDate ?? DateTime.UtcNow, DateTimeKind.Utc)); } return [.. JoinPost(query).Select(x => _mapper.Map(x))]; } @@ -83,6 +84,7 @@ public class EmployeeStorageContract : IEmployeeStorageContract throw new StorageException(ex); } } + public EmployeeDataModel? GetElementByEmail(string email) { try @@ -155,7 +157,7 @@ public class EmployeeStorageContract : IEmployeeStorageContract } } - private Employee? GetEmployeeById(string id) => _dbContext.Employees.FirstOrDefault(x => x.Id == id && !x.IsDeleted); + private Employee? GetEmployeeById(string id) => AddPost(_dbContext.Employees.FirstOrDefault(x => x.Id == id && !x.IsDeleted)); private IQueryable JoinPost(IQueryable query) => query.GroupJoin(_dbContext.Posts.Where(x => x.IsActual), x => x.PostId, y => y.PostId, (x, y) => new { Employee = x, Post = y }) diff --git a/MagicCarpetProject/MagicCarpetDatabase/Implementations/SalaryStorageContract.cs b/MagicCarpetProject/MagicCarpetDatabase/Implementations/SalaryStorageContract.cs index 2ad09d6..4d2b2ec 100644 --- a/MagicCarpetProject/MagicCarpetDatabase/Implementations/SalaryStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetDatabase/Implementations/SalaryStorageContract.cs @@ -3,6 +3,7 @@ using MagicCarpetContracts.DataModels; using MagicCarpetContracts.Exceptions; using MagicCarpetContracts.StoragesContracts; using MagicCarpetDatabase.Models; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -21,6 +22,7 @@ public class SalaryStorageContract : ISalaryStorageContract _dbContext = dbContext; var config = new MapperConfiguration(cfg => { + cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap() .ForMember(dest => dest.EmployeeSalary, opt => opt.MapFrom(src => src.Salary)); @@ -28,15 +30,17 @@ public class SalaryStorageContract : ISalaryStorageContract _mapper = new Mapper(config); } - public List GetList(DateTime startDate, DateTime endDate, string? employeeId = null) + public List GetList(DateTime? startDate, DateTime? endDate, string? employeeId = null) { try { - var query = _dbContext.Salaries.Where(x => x.SalaryDate >= startDate && x.SalaryDate <= endDate); - if (employeeId is not null) - { + var query = _dbContext.Salaries.Include(d => d.Employee).AsQueryable(); + if (startDate.HasValue) + query = query.Where(x => x.SalaryDate >= DateTime.SpecifyKind(startDate ?? DateTime.UtcNow, DateTimeKind.Utc)); + if (endDate.HasValue) + query = query.Where(x => x.SalaryDate <= DateTime.SpecifyKind(endDate ?? DateTime.UtcNow, DateTimeKind.Utc)); + if (employeeId != null) query = query.Where(x => x.EmployeeId == employeeId); - } return [.. query.Select(x => _mapper.Map(x))]; } catch (Exception ex) diff --git a/MagicCarpetProject/MagicCarpetDatabase/Implementations/SaleStorageContract.cs b/MagicCarpetProject/MagicCarpetDatabase/Implementations/SaleStorageContract.cs index d33dccf..be80990 100644 --- a/MagicCarpetProject/MagicCarpetDatabase/Implementations/SaleStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetDatabase/Implementations/SaleStorageContract.cs @@ -22,18 +22,18 @@ public class SaleStorageContract : ISaleStorageContract _dbContext = dbContext; var config = new MapperConfiguration(cfg => { - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(x => x.Tour, x => x.Ignore()); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(x => x.IsCancel, x => x.MapFrom(src => false)) - .ForMember(x => x.SaleTours, x => x.MapFrom(src => src.Tours)) - .ForMember(x => x.Employee, x => x.Ignore()) - .ForMember(x => x.Client, x => x.Ignore()); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(x => x.Tour, x => x.Ignore()); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(x => x.IsCancel, x => x.MapFrom(src => false)) + .ForMember(x => x.SaleTours, x => x.MapFrom(src => src.Tours)) + .ForMember(x => x.Employee, x => x.Ignore()) + .ForMember(x => x.Client, x => x.Ignore()); }); _mapper = new Mapper(config); } @@ -42,23 +42,23 @@ public class SaleStorageContract : ISaleStorageContract { try { - var query = _dbContext.Sales.Include(x => x.Client).Include(x => x.Employee).Include(x => x.SaleTours)!.ThenInclude(x => x.Tour).AsQueryable(); - if (startDate is not null && endDate is not null) - { - query = query.Where(x => x.SaleDate >= startDate && x.SaleDate < endDate); - } - if (employeeId is not null) - { + var query = _dbContext.Sales + .Include(r => r.Employee) + .Include(r => r.Client) + .Include(r => r.SaleTours)! + .ThenInclude(d => d.Tour) + .AsQueryable(); + if (startDate.HasValue) + query = query.Where(x => x.SaleDate >= DateTime.SpecifyKind(startDate ?? DateTime.UtcNow, DateTimeKind.Utc)); + if (endDate.HasValue) + query = query.Where(x => x.SaleDate <= DateTime.SpecifyKind(endDate ?? DateTime.UtcNow, DateTimeKind.Utc)); + if (employeeId != null) query = query.Where(x => x.EmployeeId == employeeId); - } - if (clientId is not null) - { + if (clientId != null) query = query.Where(x => x.ClientId == clientId); - } - if (tourId is not null) - { + if (tourId != null) query = query.Where(x => x.SaleTours!.Any(y => y.TourId == tourId)); - } + var s = query.ToList(); return [.. query.Select(x => _mapper.Map(x))]; } catch (Exception ex) diff --git a/MagicCarpetProject/MagicCarpetDatabase/Implementations/TourStorageContract.cs b/MagicCarpetProject/MagicCarpetDatabase/Implementations/TourStorageContract.cs index 3cc2a64..6c08b37 100644 --- a/MagicCarpetProject/MagicCarpetDatabase/Implementations/TourStorageContract.cs +++ b/MagicCarpetProject/MagicCarpetDatabase/Implementations/TourStorageContract.cs @@ -23,13 +23,13 @@ public class TourStorageContract : ITourStorageContract _dbContext = dbContext; var config = new MapperConfiguration(cfg => { - cfg.CreateMap() - .ConstructUsing(src => new TourDataModel(src.Id, src.TourName, src.TourCountry, src.Price, src.Type)); + cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); }); _mapper = new Mapper(config); } + public List GetList() { try @@ -129,7 +129,7 @@ public class TourStorageContract : ITourStorageContract throw; } } - catch (DbUpdateException ex) when (ex.InnerException is PostgresException { ConstraintName: "IX_Tours_TourName_IsDeleted" }) + catch (DbUpdateException ex) when (ex.InnerException is PostgresException { ConstraintName: "IX_Tours_TourName" }) { _dbContext.ChangeTracker.Clear(); throw new ElementExistsException("TourName", tourDataModel.TourName); diff --git a/MagicCarpetProject/MagicCarpetDatabase/Models/Tour.cs b/MagicCarpetProject/MagicCarpetDatabase/Models/Tour.cs index a0be0b2..c930c62 100644 --- a/MagicCarpetProject/MagicCarpetDatabase/Models/Tour.cs +++ b/MagicCarpetProject/MagicCarpetDatabase/Models/Tour.cs @@ -15,7 +15,7 @@ public class Tour public required string TourName { get; set; } public string? TourCountry { get; set; } public double Price { get; set; } - public required TourType Type { get; set; } + public required TourType TourType { get; set; } [ForeignKey("TourId")] public List? SaleTours { get; set; } [ForeignKey("TourId")] diff --git a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/TourBusinessLogicContractTests.cs b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/TourBusinessLogicContractTests.cs index 855a2b2..037557d 100644 --- a/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/TourBusinessLogicContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/BusinessLogicContractsTests/TourBusinessLogicContractTests.cs @@ -249,7 +249,7 @@ internal class TourBusinessLogicContractTests .Callback((TourDataModel x) => { flag = x.Id == record.Id && x.TourName == record.TourName && x.TourCountry == record.TourCountry - && x.Price == record.Price && x.Type == record.Type; + && x.Price == record.Price && x.TourType == record.TourType; }); //Act _tourBusinessLogicContract.InsertTour(record); @@ -304,7 +304,7 @@ internal class TourBusinessLogicContractTests .Callback((TourDataModel x) => { flag = x.Id == record.Id && x.TourName == record.TourName && x.TourCountry == record.TourCountry - && x.Price == record.Price && x.Type == record.Type; + && x.Price == record.Price && x.TourType == record.TourType; }); //Act _tourBusinessLogicContract.UpdateTour(record); diff --git a/MagicCarpetProject/MagicCarpetTests/DataModelTests/TourDataModelTests.cs b/MagicCarpetProject/MagicCarpetTests/DataModelTests/TourDataModelTests.cs index d97512f..1c7d329 100644 --- a/MagicCarpetProject/MagicCarpetTests/DataModelTests/TourDataModelTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/DataModelTests/TourDataModelTests.cs @@ -75,7 +75,7 @@ internal class TourDataModelTests Assert.That(tour.TourName, Is.EqualTo(tourName)); Assert.That(tour.TourCountry, Is.EqualTo(tourCountry)); Assert.That(tour.Price, Is.EqualTo(price)); - Assert.That(tour.Type, Is.EqualTo(tourType)); + Assert.That(tour.TourType, Is.EqualTo(tourType)); }); } diff --git a/MagicCarpetProject/MagicCarpetTests/Infrastructure/MagicCarpetDbContextExtensions.cs b/MagicCarpetProject/MagicCarpetTests/Infrastructure/MagicCarpetDbContextExtensions.cs index ca2680b..c80c54d 100644 --- a/MagicCarpetProject/MagicCarpetTests/Infrastructure/MagicCarpetDbContextExtensions.cs +++ b/MagicCarpetProject/MagicCarpetTests/Infrastructure/MagicCarpetDbContextExtensions.cs @@ -28,9 +28,9 @@ internal static class MagicCarpetDbContextExtensions return post; } - public static Tour InsertTourToDatabaseAndReturn(this MagicCarpetDbContext dbContext, string? id = null, string tourName = "test", TourType tourType = TourType.Beach, double price = 1) + public static Tour InsertTourToDatabaseAndReturn(this MagicCarpetDbContext dbContext, string? id = null, string tourName = "test", string tourCountry = "country", TourType tourType = TourType.Beach, double price = 1) { - var tour = new Tour() { Id = id ?? Guid.NewGuid().ToString(), TourName = tourName, Type = tourType, Price = price }; + var tour = new Tour() { Id = id ?? Guid.NewGuid().ToString(), TourName = tourName, TourCountry = tourCountry, TourType = tourType, Price = price }; dbContext.Tours.Add(tour); dbContext.SaveChanges(); return tour; @@ -52,14 +52,14 @@ internal static class MagicCarpetDbContextExtensions return salary; } - public static Sale InsertSaleToDatabaseAndReturn(this MagicCarpetDbContext dbContext, string employeeId, string? clientId = null, DateTime? saleDate = null, double sum = 1, DiscountType discountType = DiscountType.OnSale, double discount = 0, bool isCancel = false, List<(string, int, double)>? tours = null) + public static Sale InsertSaleToDatabaseAndReturn(this MagicCarpetDbContext dbContext, string employeeId, string? clientId = null, DateTime? saleDate = null, double sum = 1, DiscountType discountType = DiscountType.None, double discount = 0, bool isCancel = false, List<(string, int, double)>? tours = null) { var sale = new Sale() { EmployeeId = employeeId, ClientId = clientId, SaleDate = saleDate ?? DateTime.UtcNow, Sum = sum, DiscountType = discountType, Discount = discount, IsCancel = isCancel, SaleTours = [] }; if (tours is not null) { foreach (var elem in tours) { - sale.SaleTours.Add(new SaleTour { TourId = elem.Item1, SaleId = sale.Id, Count = elem.Item2, Price = elem.Item3 }); + sale.SaleTours.Add(new SaleTour { TourId = elem.Item1, SaleId = sale.Id, Count = elem.Item2, Price = elem.Item3 }); } } dbContext.Sales.Add(sale); diff --git a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/EmployeeStorageContractTests.cs b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/EmployeeStorageContractTests.cs index b681340..d11d8c5 100644 --- a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/EmployeeStorageContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/EmployeeStorageContractTests.cs @@ -2,6 +2,7 @@ using MagicCarpetContracts.Exceptions; using MagicCarpetDatabase.Implementations; using MagicCarpetDatabase.Models; +using MagicCarpetTests.Infrastructure; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; @@ -25,19 +26,19 @@ class EmployeeStorageContractTests : BaseStorageContractTest [TearDown] public void TearDown() { - MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Employees\"CASCADE; "); + MagicCarpetDbContext.RemoveEmployeesFromDatabase(); } [Test] public void Try_GetList_WhenHaveRecords_Test() { - var employee = InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com"); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com"); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com"); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com"); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com"); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com"); var list = _employeeStorageContract.GetList(); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(3)); - AssertElement(list.First(), employee); + AssertElement(list.First(x => x.Id == employee.Id), employee); } [Test] @@ -52,9 +53,9 @@ class EmployeeStorageContractTests : BaseStorageContractTest public void Try_GetList_ByPostId_Test() { var postId = Guid.NewGuid().ToString(); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", postId); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", postId); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com"); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", postId); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", postId); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com"); var list = _employeeStorageContract.GetList(postId: postId); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(2)); @@ -64,10 +65,10 @@ class EmployeeStorageContractTests : BaseStorageContractTest [Test] public void Try_GetList_ByBirthDate_Test() { - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-25)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-21)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-20)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-19)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-25)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-21)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-20)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-19)); var list = _employeeStorageContract.GetList(fromBirthDate: DateTime.UtcNow.AddYears(-21).AddMinutes(-1), toBirthDate: DateTime.UtcNow.AddYears(-20).AddMinutes(1)); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(2)); @@ -76,10 +77,10 @@ class EmployeeStorageContractTests : BaseStorageContractTest [Test] public void Try_GetList_ByEmploymentDate_Test() { - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(-2)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(-1)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(1)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(2)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(-2)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(-1)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(1)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", employmentDate: DateTime.UtcNow.AddDays(2)); var list = _employeeStorageContract.GetList(fromEmploymentDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-1), toEmploymentDate: DateTime.UtcNow.AddDays(1).AddMinutes(1)); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(2)); @@ -89,12 +90,11 @@ class EmployeeStorageContractTests : BaseStorageContractTest public void Try_GetList_ByAllParameters_Test() { var postId = Guid.NewGuid().ToString(); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-25), employmentDate: DateTime.UtcNow.AddDays(-2)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-22), employmentDate: DateTime.UtcNow.AddDays(-1)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-21), employmentDate: DateTime.UtcNow.AddDays(-1)); - InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-20), employmentDate: DateTime.UtcNow.AddDays(1)); - var list = _employeeStorageContract.GetList(postId: postId, fromBirthDate: DateTime.UtcNow.AddYears(-21).AddMinutes(-1), toBirthDate: DateTime.UtcNow.AddYears(-20).AddMinutes(1), - fromEmploymentDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-1), toEmploymentDate: DateTime.UtcNow.AddDays(1).AddMinutes(1)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-25), employmentDate: DateTime.UtcNow.AddDays(-2)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-22), employmentDate: DateTime.UtcNow.AddDays(-1)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", "abc@gmail.com", postId, birthDate: DateTime.UtcNow.AddYears(-21), employmentDate: DateTime.UtcNow.AddDays(-1)); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", "abc@gmail.com", birthDate: DateTime.UtcNow.AddYears(-20), employmentDate: DateTime.UtcNow.AddDays(1)); + var list = _employeeStorageContract.GetList(postId: postId, fromBirthDate: DateTime.UtcNow.AddYears(-21).AddMinutes(-1), toBirthDate: DateTime.UtcNow.AddYears(-20).AddMinutes(1), fromEmploymentDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-1), toEmploymentDate: DateTime.UtcNow.AddDays(1).AddMinutes(1)); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(1)); } @@ -102,7 +102,7 @@ class EmployeeStorageContractTests : BaseStorageContractTest [Test] public void Try_GetElementById_WhenHaveRecord_Test() { - var employee = InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); AssertElement(_employeeStorageContract.GetElementById(employee.Id), employee); } @@ -115,7 +115,7 @@ class EmployeeStorageContractTests : BaseStorageContractTest [Test] public void Try_GetElementByFIO_WhenHaveRecord_Test() { - var employee = InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); AssertElement(_employeeStorageContract.GetElementByFIO(employee.FIO), employee); } @@ -130,14 +130,14 @@ class EmployeeStorageContractTests : BaseStorageContractTest { var employee = CreateModel(Guid.NewGuid().ToString()); _employeeStorageContract.AddElement(employee); - AssertElement(GetEmployeeFromDatabase(employee.Id), employee); + AssertElement(MagicCarpetDbContext.GetEmployeeFromDatabaseById(employee.Id), employee); } [Test] public void Try_AddElement_WhenHaveRecordWithSameId_Test() { var employee = CreateModel(Guid.NewGuid().ToString()); - InsertEmployeeToDatabaseAndReturn(employee.Id); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(employee.Id); Assert.That(() => _employeeStorageContract.AddElement(employee), Throws.TypeOf()); } @@ -145,9 +145,9 @@ class EmployeeStorageContractTests : BaseStorageContractTest public void Try_UpdElement_Test() { var employee = CreateModel(Guid.NewGuid().ToString(), "New Fio"); - InsertEmployeeToDatabaseAndReturn(employee.Id); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(employee.Id); _employeeStorageContract.UpdElement(employee); - AssertElement(GetEmployeeFromDatabase(employee.Id), employee); + AssertElement(MagicCarpetDbContext.GetEmployeeFromDatabaseById(employee.Id), employee); } [Test] @@ -160,16 +160,16 @@ class EmployeeStorageContractTests : BaseStorageContractTest public void Try_UpdElement_WhenNoRecordWasDeleted_Test() { var employee = CreateModel(Guid.NewGuid().ToString()); - InsertEmployeeToDatabaseAndReturn(employee.Id, isDeleted: true); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(employee.Id, isDeleted: true); Assert.That(() => _employeeStorageContract.UpdElement(employee), Throws.TypeOf()); } [Test] public void Try_DelElement_Test() { - var employee = InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString()); _employeeStorageContract.DelElement(employee.Id); - var element = GetEmployeeFromDatabase(employee.Id); + var element = MagicCarpetDbContext.GetEmployeeFromDatabaseById(employee.Id); Assert.That(element, Is.Not.Null); Assert.That(element.IsDeleted); } @@ -184,18 +184,10 @@ class EmployeeStorageContractTests : BaseStorageContractTest public void Try_DelElement_WhenNoRecordWasDeleted_Test() { var employee = CreateModel(Guid.NewGuid().ToString()); - InsertEmployeeToDatabaseAndReturn(employee.Id, isDeleted: true); + MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(employee.Id, isDeleted: true); Assert.That(() => _employeeStorageContract.DelElement(employee.Id), Throws.TypeOf()); } - private Employee InsertEmployeeToDatabaseAndReturn(string id, string fio = "test", string email = "abc@mail.ru",string ? postId = null, DateTime? birthDate = null, DateTime? employmentDate = null, bool isDeleted = false) - { - var employee = new Employee() { Id = id, FIO = fio, Email = email, PostId = postId ?? Guid.NewGuid().ToString(), BirthDate = birthDate ?? DateTime.UtcNow.AddYears(-20), EmploymentDate = employmentDate ?? DateTime.UtcNow, IsDeleted = isDeleted }; - MagicCarpetDbContext.Employees.Add(employee); - MagicCarpetDbContext.SaveChanges(); - return employee; - } - private static void AssertElement(EmployeeDataModel? actual, Employee expected) { Assert.That(actual, Is.Not.Null); @@ -212,9 +204,7 @@ class EmployeeStorageContractTests : BaseStorageContractTest } private static EmployeeDataModel CreateModel(string id, string fio = "fio", string email = "abc@mail.ru", string? postId = null, DateTime? birthDate = null, DateTime? employmentDate = null, bool isDeleted = false) => - new(id, fio, email, postId ?? Guid.NewGuid().ToString(), birthDate ?? DateTime.UtcNow.AddYears(-20), employmentDate ?? DateTime.UtcNow, isDeleted); - - private Employee? GetEmployeeFromDatabase(string id) => MagicCarpetDbContext.Employees.FirstOrDefault(x => x.Id == id); + new(id, fio, email, postId ?? Guid.NewGuid().ToString(), birthDate ?? DateTime.UtcNow.AddYears(-20), employmentDate ?? DateTime.UtcNow, isDeleted); private static void AssertElement(Employee? actual, EmployeeDataModel expected) { diff --git a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SalaryStorageContractTests.cs b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SalaryStorageContractTests.cs index 1f2295c..e02176f 100644 --- a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SalaryStorageContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SalaryStorageContractTests.cs @@ -1,6 +1,7 @@ using MagicCarpetContracts.DataModels; using MagicCarpetDatabase.Implementations; using MagicCarpetDatabase.Models; +using MagicCarpetTests.Infrastructure; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; @@ -20,26 +21,26 @@ internal class SalaryStorageContractTests : BaseStorageContractTest public void SetUp() { _salaryStorageContract = new SalaryStorageContract(MagicCarpetDbContext); - _employee = InsertEmployeeToDatabaseAndReturn(); + _employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(); } [TearDown] public void TearDown() { - MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Salaries\" CASCADE;"); - MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Employees\" CASCADE;"); + MagicCarpetDbContext.RemoveSalariesFromDatabase(); + MagicCarpetDbContext.RemoveEmployeesFromDatabase(); } [Test] public void Try_GetList_WhenHaveRecords_Test() { - var salary = InsertSalaryToDatabaseAndReturn(_employee.Id, employeeSalary: 100); - InsertSalaryToDatabaseAndReturn(_employee.Id); - InsertSalaryToDatabaseAndReturn(_employee.Id); + var salary = MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, employeeSalary: 100); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id); var list = _salaryStorageContract.GetList(DateTime.UtcNow.AddDays(-10), DateTime.UtcNow.AddDays(10)); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(3)); - AssertElement(list.First(), salary); + AssertElement(list.Single(x => x.Salary == salary.EmployeeSalary), salary); } [Test] @@ -53,12 +54,12 @@ internal class SalaryStorageContractTests : BaseStorageContractTest [Test] public void Try_GetList_OnlyInDatePeriod_Test() { - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(-5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); var list = _salaryStorageContract.GetList(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow.AddDays(1)); Assert.That(list, Is.Not.Null); Assert.Multiple(() => @@ -70,10 +71,10 @@ internal class SalaryStorageContractTests : BaseStorageContractTest [Test] public void Try_GetList_ByEmployee_Test() { - var employee = InsertEmployeeToDatabaseAndReturn("name 2"); - InsertSalaryToDatabaseAndReturn(_employee.Id); - InsertSalaryToDatabaseAndReturn(_employee.Id); - InsertSalaryToDatabaseAndReturn(employee.Id); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn("name 2"); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id); var list = _salaryStorageContract.GetList(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow.AddDays(1), _employee.Id); Assert.That(list, Is.Not.Null); Assert.Multiple(() => @@ -86,13 +87,13 @@ internal class SalaryStorageContractTests : BaseStorageContractTest [Test] public void Try_GetList_ByEmployeeOnlyInDatePeriod_Test() { - var employee = InsertEmployeeToDatabaseAndReturn("name 2"); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); - InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); + var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name 2"); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(-1).AddMinutes(5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5)); + MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(_employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2)); var list = _salaryStorageContract.GetList(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow.AddDays(1), _employee.Id); Assert.That(list, Is.Not.Null); Assert.Multiple(() => @@ -107,23 +108,7 @@ internal class SalaryStorageContractTests : BaseStorageContractTest { var salary = CreateModel(_employee.Id); _salaryStorageContract.AddElement(salary); - AssertElement(GetSalaryFromDatabaseByEmployeeId(_employee.Id), salary); - } - - private Employee InsertEmployeeToDatabaseAndReturn(string employeeFIO = "fio", string employeeEmail = "abc@mail.ru") - { - var employee = new Employee() { Id = Guid.NewGuid().ToString(), PostId = Guid.NewGuid().ToString(), FIO = employeeFIO, Email = employeeEmail, IsDeleted = false }; - MagicCarpetDbContext.Employees.Add(employee); - MagicCarpetDbContext.SaveChanges(); - return employee; - } - - private Salary InsertSalaryToDatabaseAndReturn(string employeeId, double employeeSalary = 1, DateTime? salaryDate = null) - { - var salary = new Salary() { EmployeeId = employeeId, EmployeeSalary = employeeSalary, SalaryDate = salaryDate ?? DateTime.UtcNow }; - MagicCarpetDbContext.Salaries.Add(salary); - MagicCarpetDbContext.SaveChanges(); - return salary; + AssertElement(MagicCarpetDbContext.GetSalariesFromDatabaseByEmployeeId(_employee.Id).First(), salary); } private static void AssertElement(SalaryDataModel? actual, Salary expected) @@ -139,8 +124,6 @@ internal class SalaryStorageContractTests : BaseStorageContractTest private static SalaryDataModel CreateModel(string employeeId, double employeeSalary = 1, DateTime? salaryDate = null) => new(employeeId, salaryDate ?? DateTime.UtcNow, employeeSalary); - private Salary? GetSalaryFromDatabaseByEmployeeId(string id) => MagicCarpetDbContext.Salaries.FirstOrDefault(x => x.EmployeeId == id); - private static void AssertElement(Salary? actual, SalaryDataModel expected) { Assert.That(actual, Is.Not.Null); diff --git a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SaleStorageContractTests.cs b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SaleStorageContractTests.cs index 12e336b..f553fcc 100644 --- a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SaleStorageContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/SaleStorageContractTests.cs @@ -1,4 +1,4 @@ -using MagicCarpetContracts.DataModels; + using MagicCarpetContracts.DataModels; using MagicCarpetContracts.Enums; using MagicCarpetContracts.Exceptions; using MagicCarpetDatabase.Implementations; diff --git a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/TourStorageContractTests.cs b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/TourStorageContractTests.cs index 3b97dae..31a6404 100644 --- a/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/TourStorageContractTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/StoragesContractsTests/TourStorageContractTests.cs @@ -3,6 +3,7 @@ using MagicCarpetContracts.Enums; using MagicCarpetContracts.Exceptions; using MagicCarpetDatabase.Implementations; using MagicCarpetDatabase.Models; +using MagicCarpetTests.Infrastructure; using Microsoft.EntityFrameworkCore; using Moq; using System; @@ -28,15 +29,15 @@ internal class TourStorageContractTests : BaseStorageContractTest [TearDown] public void TearDown() { - MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Tours\" CASCADE;"); + MagicCarpetDbContext.RemoveToursFromDatabase(); } [Test] public void Try_GetList_WhenHaveRecords_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 2"); - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 3"); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 2"); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 3"); var list = _tourStorageContract.GetList(); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(3)); @@ -54,10 +55,10 @@ internal class TourStorageContractTests : BaseStorageContractTest [Test] public void Try_GetHistoryByTourId_WhenHaveRecords_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10)); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 40, DateTime.UtcNow.AddDays(1)); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10)); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 40, DateTime.UtcNow.AddDays(1)); var list = _tourStorageContract.GetHistoryByTourId(tour.Id); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(3)); @@ -66,10 +67,10 @@ internal class TourStorageContractTests : BaseStorageContractTest [Test] public void Try_GetHistoryByTourId_WhenNoRecords_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10)); - InsertTourHistoryToDatabaseAndReturn(tour.Id, 40, DateTime.UtcNow.AddDays(1)); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10)); + MagicCarpetDbContext.InsertTourHistoryToDatabaseAndReturn(tour.Id, 40, DateTime.UtcNow.AddDays(1)); var list = _tourStorageContract.GetHistoryByTourId(Guid.NewGuid().ToString()); Assert.That(list, Is.Not.Null); Assert.That(list, Has.Count.EqualTo(0)); @@ -78,28 +79,28 @@ internal class TourStorageContractTests : BaseStorageContractTest [Test] public void Try_GetElementById_WhenHaveRecord_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); AssertElement(_tourStorageContract.GetElementById(tour.Id), tour); } [Test] public void Try_GetElementById_WhenNoRecord_Test() { - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); Assert.That(() => _tourStorageContract.GetElementById(Guid.NewGuid().ToString()), Is.Null); } [Test] public void Try_GetElementByName_WhenHaveRecord_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); AssertElement(_tourStorageContract.GetElementByName(tour.TourName), tour); } [Test] public void Try_GetElementByName_WhenNoRecord_Test() { - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); Assert.That(() => _tourStorageContract.GetElementByName("name"), Is.Null); } @@ -108,14 +109,14 @@ internal class TourStorageContractTests : BaseStorageContractTest { var tour = CreateModel(Guid.NewGuid().ToString()); _tourStorageContract.AddElement(tour); - AssertElement(GetTourFromDatabaseById(tour.Id), tour); + AssertElement(MagicCarpetDbContext.GetTourFromDatabaseById(tour.Id), tour); } [Test] public void Try_AddElement_WhenHaveRecordWithSameId_Test() { var tour = CreateModel(Guid.NewGuid().ToString()); - InsertTourToDatabaseAndReturn(tour.Id, tourName: "name unique"); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(tour.Id, tourName: "name unique"); Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf()); } @@ -123,17 +124,17 @@ internal class TourStorageContractTests : BaseStorageContractTest public void Try_AddElement_WhenHaveRecordWithSameName_Test() { var tour = CreateModel(Guid.NewGuid().ToString(), "name unique"); - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tourName: tour.TourName); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tourName: tour.TourName); Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf()); } [Test] public void Try_UpdElement_Test() { - var tour = CreateModel(Guid.NewGuid().ToString(), "new name", "country"); - InsertTourToDatabaseAndReturn(tour.Id); + var tour = CreateModel(Guid.NewGuid().ToString(), "new name", tourType: TourType.Beach); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(tour.Id); _tourStorageContract.UpdElement(tour); - AssertElement(GetTourFromDatabaseById(tour.Id), tour); + AssertElement(MagicCarpetDbContext.GetTourFromDatabaseById(tour.Id), tour); } [Test] @@ -146,17 +147,17 @@ internal class TourStorageContractTests : BaseStorageContractTest public void Try_UpdElement_WhenHaveRecordWithSameName_Test() { var tour = CreateModel(Guid.NewGuid().ToString(), "name unique"); - InsertTourToDatabaseAndReturn(tour.Id, tourName: "name"); - InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tourName: tour.TourName); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(tour.Id, tourName: "name"); + MagicCarpetDbContext.InsertTourToDatabaseAndReturn(tourName: tour.TourName); Assert.That(() => _tourStorageContract.UpdElement(tour), Throws.TypeOf()); } [Test] public void Try_DelElement_Test() { - var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); + var tour = MagicCarpetDbContext.InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); _tourStorageContract.DelElement(tour.Id); - var element = GetTourFromDatabaseById(tour.Id); + var element = MagicCarpetDbContext.GetTourFromDatabaseById(tour.Id); Assert.That(element, Is.Null); } @@ -165,23 +166,6 @@ internal class TourStorageContractTests : BaseStorageContractTest { Assert.That(() => _tourStorageContract.DelElement(Guid.NewGuid().ToString()), Throws.TypeOf()); } - - private Tour InsertTourToDatabaseAndReturn(string id, string tourName = "test", string tourCountry = "country", TourType tourType = TourType.Beach, double price = 1) - { - var tour = new Tour() { Id = id, TourName = tourName, TourCountry = tourCountry, Type = tourType, Price = price }; - MagicCarpetDbContext.Tours.Add(tour); - MagicCarpetDbContext.SaveChanges(); - return tour; - } - - private TourHistory InsertTourHistoryToDatabaseAndReturn(string tourId, double price, DateTime changeDate) - { - var tourHistory = new TourHistory() { Id = Guid.NewGuid().ToString(), TourId = tourId, OldPrice = price, ChangeDate = changeDate }; - MagicCarpetDbContext.TourHistories.Add(tourHistory); - MagicCarpetDbContext.SaveChanges(); - return tourHistory; - } - private static void AssertElement(TourDataModel? actual, Tour expected) { Assert.That(actual, Is.Not.Null); @@ -190,15 +174,13 @@ internal class TourStorageContractTests : BaseStorageContractTest Assert.That(actual.Id, Is.EqualTo(expected.Id)); Assert.That(actual.TourName, Is.EqualTo(expected.TourName)); Assert.That(actual.TourCountry, Is.EqualTo(expected.TourCountry)); - Assert.That(actual.Type, Is.EqualTo(expected.Type)); + Assert.That(actual.TourType, Is.EqualTo(expected.TourType)); Assert.That(actual.Price, Is.EqualTo(expected.Price)); }); } - private static TourDataModel CreateModel(string id, string tourName = "test", string tourCountry = "country", TourType type = TourType.Beach, double price = 1) - => new(id, tourName, tourCountry, price, type); - - private Tour? GetTourFromDatabaseById(string id) => MagicCarpetDbContext.Tours.FirstOrDefault(x => x.Id == id); + private static TourDataModel CreateModel(string id, string tourName = "test", string tourCountry = "country", TourType tourType = TourType.Ski, double price = 1) + => new(id, tourName,tourCountry, price, tourType); private static void AssertElement(Tour? actual, TourDataModel expected) { @@ -208,7 +190,7 @@ internal class TourStorageContractTests : BaseStorageContractTest Assert.That(actual.Id, Is.EqualTo(expected.Id)); Assert.That(actual.TourName, Is.EqualTo(expected.TourName)); Assert.That(actual.TourCountry, Is.EqualTo(expected.TourCountry)); - Assert.That(actual.Type, Is.EqualTo(expected.Type)); + Assert.That(actual.TourType, Is.EqualTo(expected.TourType)); Assert.That(actual.Price, Is.EqualTo(expected.Price)); }); } diff --git a/MagicCarpetProject/MagicCarpetTests/WebApiControllersTests/TourControllerTests.cs b/MagicCarpetProject/MagicCarpetTests/WebApiControllersTests/TourControllerTests.cs index 6f729ab..d2b03d9 100644 --- a/MagicCarpetProject/MagicCarpetTests/WebApiControllersTests/TourControllerTests.cs +++ b/MagicCarpetProject/MagicCarpetTests/WebApiControllersTests/TourControllerTests.cs @@ -354,7 +354,7 @@ internal class TourControllerTests : BaseWebApiControllerTest { Assert.That(actual.Id, Is.EqualTo(expected.Id)); Assert.That(actual.TourName, Is.EqualTo(expected.TourName)); - Assert.That(actual.TourType, Is.EqualTo(expected.Type.ToString())); + Assert.That(actual.TourType, Is.EqualTo(expected.TourType.ToString())); Assert.That(actual.Price, Is.EqualTo(expected.Price)); }); } @@ -386,7 +386,7 @@ internal class TourControllerTests : BaseWebApiControllerTest { Assert.That(actual.Id, Is.EqualTo(expected.Id)); Assert.That(actual.TourName, Is.EqualTo(expected.TourName)); - Assert.That(actual.Type.ToString(), Is.EqualTo(expected.TourType)); + Assert.That(actual.TourType.ToString(), Is.EqualTo(expected.TourType)); Assert.That(actual.Price, Is.EqualTo(expected.Price)); }); }