добавление тестов, но пока все не работают(

This commit is contained in:
2025-03-12 10:19:21 +04:00
parent a83fdd892d
commit 7b15c9c56e
2 changed files with 35 additions and 92 deletions

View File

@@ -60,18 +60,6 @@ class EmployeeStorageContractTests : BaseStorageContractTest
Assert.That(list, Has.Count.EqualTo(2)); Assert.That(list, Has.Count.EqualTo(2));
Assert.That(list.All(x => x.PostId == postId)); Assert.That(list.All(x => x.PostId == postId));
} }
[Test]
public void Try_GetList_ByEmailId_Test()
{
var email = Guid.NewGuid().ToString();
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", email);
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", email);
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", email);
var list = _employeeStorageContract.GetList(email: email);
Assert.That(list, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(2));
Assert.That(list.All(x => x.Email == email));
}
[Test] [Test]
public void Try_GetList_ByBirthDate_Test() public void Try_GetList_ByBirthDate_Test()
@@ -101,11 +89,12 @@ class EmployeeStorageContractTests : BaseStorageContractTest
public void Try_GetList_ByAllParameters_Test() public void Try_GetList_ByAllParameters_Test()
{ {
var postId = Guid.NewGuid().ToString(); var postId = Guid.NewGuid().ToString();
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", postId, "email@mail.ru", birthDate: DateTime.UtcNow.AddYears(-25), employmentDate: DateTime.UtcNow.AddDays(-2)); InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", postId, birthDate: DateTime.UtcNow.AddYears(-25), employmentDate: DateTime.UtcNow.AddDays(-2));
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", postId, "email@mail.ru", birthDate: DateTime.UtcNow.AddYears(-22), employmentDate: DateTime.UtcNow.AddDays(-1)); InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", postId, birthDate: DateTime.UtcNow.AddYears(-22), employmentDate: DateTime.UtcNow.AddDays(-1));
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", postId, "email@mail.ru", birthDate: DateTime.UtcNow.AddYears(-21), employmentDate: DateTime.UtcNow.AddDays(-1)); InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 3", postId, birthDate: DateTime.UtcNow.AddYears(-21), employmentDate: DateTime.UtcNow.AddDays(-1));
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", postId, "email@mail.ru", birthDate: DateTime.UtcNow.AddYears(-20), employmentDate: DateTime.UtcNow.AddDays(1)); InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 4", birthDate: DateTime.UtcNow.AddYears(-20), employmentDate: DateTime.UtcNow.AddDays(1));
var list = _employeeStorageContract.GetList(postId: postId, email: "email@mail.ru", 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)); 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, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(1)); Assert.That(list, Has.Count.EqualTo(1));
} }
@@ -222,7 +211,7 @@ class EmployeeStorageContractTests : BaseStorageContractTest
}); });
} }
private static EmployeeDataModel CreateModel(string id, string fio = "fio", string? postId = null, string? email = null, DateTime? birthDate = null, DateTime? employmentDate = null, bool isDeleted = false) => private static EmployeeDataModel CreateModel(string id, string fio = "fio", string? postId = null, DateTime? birthDate = null, DateTime? employmentDate = null, string email = "email", bool isDeleted = false) =>
new(id, fio, postId ?? Guid.NewGuid().ToString(), email, birthDate ?? DateTime.UtcNow.AddYears(-20), employmentDate ?? DateTime.UtcNow, isDeleted); new(id, fio, postId ?? Guid.NewGuid().ToString(), email, birthDate ?? DateTime.UtcNow.AddYears(-20), employmentDate ?? DateTime.UtcNow, isDeleted);
private Employee? GetEmployeeFromDatabase(string id) => MagicCarpetDbContext.Employees.FirstOrDefault(x => x.Id == id); private Employee? GetEmployeeFromDatabase(string id) => MagicCarpetDbContext.Employees.FirstOrDefault(x => x.Id == id);

View File

@@ -39,7 +39,7 @@ internal class TourStorageContractTests : BaseStorageContractTest
var list = _tourStorageContract.GetList(); var list = _tourStorageContract.GetList();
Assert.That(list, Is.Not.Null); Assert.That(list, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(3)); Assert.That(list, Has.Count.EqualTo(3));
AssertElement(list.First(x => x.Id == tour.Id), tour); AssertElement(list.First(), tour);
} }
[Test] [Test]
@@ -53,25 +53,15 @@ internal class TourStorageContractTests : BaseStorageContractTest
[Test] [Test]
public void Try_GetHistoryByTourId_WhenHaveRecords_Test() public void Try_GetHistoryByTourId_WhenHaveRecords_Test()
{ {
var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); AssertElement(_tourStorageContract.GetElementById(tour.Id), tour);
InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10));
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));
} }
[Test] [Test]
public void Try_GetHistoryByTourId_WhenNoRecords_Test() public void Try_GetHistoryByTourId_WhenNoRecords_Test()
{ {
var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name 1"); InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
InsertTourHistoryToDatabaseAndReturn(tour.Id, 20, DateTime.UtcNow.AddDays(-1)); Assert.That(() => _tourStorageContract.GetElementById(Guid.NewGuid().ToString()), Is.Null);
InsertTourHistoryToDatabaseAndReturn(tour.Id, 30, DateTime.UtcNow.AddMinutes(-10));
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));
} }
[Test] [Test]
@@ -103,97 +93,69 @@ internal class TourStorageContractTests : BaseStorageContractTest
} }
[Test] [Test]
public void Try_AddElement_WhenIsDeletedIsTrue_Test() public void Try_AddElement_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), "name"); var tour = CreateModel(Guid.NewGuid().ToString(), "tour1");
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.Nothing); _tourStorageContract.AddElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), CreateModel(tour.Id, _manufacturer.Id, isDeleted: false)); AssertElement(GetTourFromDatabaseById(tour.Id), tour);
} }
[Test] [Test]
public void Try_AddElement_WhenHaveRecordWithSameId_Test() public void Try_AddElement_WhenHaveRecordWithSameId_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id); var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id, "name1", tourName: "name unique"); InsertTourToDatabaseAndReturn(tour.Id);
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf<ElementExistsException>()); Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf<ElementExistsException>());
} }
[Test] [Test]
public void Try_AddElement_WhenHaveRecordWithSameName_Test() public void Try_AddElement_WhenHaveRecordWithSameName_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, "name unique", isDeleted: false); var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), _manufacturer.Id, tourName: tour.TourName, isDeleted: false); InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tour.TourName);
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf<ElementExistsException>()); Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf<ElementExistsException>());
} }
[Test]
public void Try_AddElement_WhenHaveRecordWithSameNameButOneWasDeleted_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, "name unique", isDeleted: false);
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), _manufacturer.Id, tourName: tour.TourName, isDeleted: true);
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.Nothing);
}
[Test] [Test]
public void Try_UpdElement_Test() public void Try_UpdElement_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, isDeleted: false); var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, isDeleted: false); InsertTourToDatabaseAndReturn(tour.Id, tourName: tour.TourName);
_tourStorageContract.UpdElement(tour); _tourStorageContract.UpdElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), tour); AssertElement(GetTourFromDatabaseById(tour.Id), tour);
} }
[Test] [Test]
public void Try_UpdElement_WhenIsDeletedIsTrue_Test() public void Try_UpdElement_WhenNoChangeName_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, isDeleted: true); var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, isDeleted: false); InsertTourToDatabaseAndReturn(tour.Id, tour.TourName);
_tourStorageContract.UpdElement(tour); _tourStorageContract.UpdElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), CreateModel(tour.Id, _manufacturer.Id, isDeleted: false)); AssertElement(GetTourFromDatabaseById(tour.Id), tour);
} }
[Test] [Test]
public void Try_UpdElement_WhenNoRecordWithThisId_Test() public void Try_UpdElement_WhenNoRecordWithThisId_Test()
{ {
Assert.That(() => _tourStorageContract.UpdElement(CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id)), Throws.TypeOf<ElementNotFoundException>()); Assert.That(() => _tourStorageContract.UpdElement(CreateModel(Guid.NewGuid().ToString())), Throws.TypeOf<ElementNotFoundException>());
} }
[Test] [Test]
public void Try_UpdElement_WhenHaveRecordWithSameName_Test() public void Try_UpdElement_WhenHaveRecordWithSameName_Test()
{ {
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, "name unique", isDeleted: false); var tour = CreateModel(Guid.NewGuid().ToString(), "Duplicate Name");
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, tourName: "name"); InsertTourToDatabaseAndReturn(tour.Id, "Old Name");
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), _manufacturer.Id, tourName: tour.TourName); InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tour.TourName);
Assert.That(() => _tourStorageContract.UpdElement(tour), Throws.TypeOf<ElementExistsException>()); Assert.That(() => _tourStorageContract.UpdElement(tour), Throws.TypeOf<ElementExistsException>());
} }
[Test]
public void Try_UpdElement_WhenHaveRecordWithSameNameButOneWasDeleted_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, "name unique", isDeleted: false);
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, tourName: "name");
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), _manufacturer.Id, tourName: tour.TourName, isDeleted: true);
Assert.That(() => _tourStorageContract.UpdElement(tour), Throws.Nothing);
}
[Test]
public void Try_UpdElement_WhenRecordWasDeleted_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), "name1");
InsertTourToDatabaseAndReturn(tour.Id);
Assert.That(() => _tourStorageContract.UpdElement(tour), Throws.TypeOf<ElementNotFoundException>());
}
[Test] [Test]
public void Try_DelElement_Test() public void Try_DelElement_Test()
{ {
var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString()); var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
_tourStorageContract.DelElement(tour.Id); _tourStorageContract.DelElement(tour.Id);
var element = GetTourFromDatabaseById(tour.Id); var element = GetTourFromDatabaseById(tour.Id);
Assert.Multiple(() => Assert.That(element, Is.Null);
{
Assert.That(element, Is.Not.Null);
});
} }
[Test] [Test]
@@ -202,22 +164,14 @@ internal class TourStorageContractTests : BaseStorageContractTest
Assert.That(() => _tourStorageContract.DelElement(Guid.NewGuid().ToString()), Throws.TypeOf<ElementNotFoundException>()); Assert.That(() => _tourStorageContract.DelElement(Guid.NewGuid().ToString()), Throws.TypeOf<ElementNotFoundException>());
} }
private Tour InsertTourToDatabaseAndReturn(string id, string tourName = "test", string tourCountry = "country", double price = 1, TourType tourType = TourType.Sightseeing) private Tour InsertTourToDatabaseAndReturn(string id, string tourName = "test")
{ {
var tour = new Tour() { Id = id, TourName = tourName, TourCountry = tourCountry, Price = price, Type = tourType, }; var tour = new Tour { Id = id, TourName = tourName };
MagicCarpetDbContext.Tours.Add(tour); MagicCarpetDbContext.Tours.Add(tour);
MagicCarpetDbContext.SaveChanges(); MagicCarpetDbContext.SaveChanges();
return tour; 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) private static void AssertElement(TourDataModel? actual, Tour expected)
{ {
Assert.That(actual, Is.Not.Null); Assert.That(actual, Is.Not.Null);
@@ -231,7 +185,7 @@ internal class TourStorageContractTests : BaseStorageContractTest
}); });
} }
private static TourDataModel CreateModel(string id, string manufacturerId, string tourName = "test", string tourCountry = "country", double price = 1, TourType tourType = TourType.Sightseeing) private static TourDataModel CreateModel(string id, string tourName = "test", string tourCountry = "country", double price = 1, TourType tourType = TourType.Sightseeing)
=> new(id, tourName, tourCountry, price, tourType); => new(id, tourName, tourCountry, price, tourType);
private Tour? GetTourFromDatabaseById(string id) => MagicCarpetDbContext.Tours.FirstOrDefault(x => x.Id == id); private Tour? GetTourFromDatabaseById(string id) => MagicCarpetDbContext.Tours.FirstOrDefault(x => x.Id == id);