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

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.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]
public void Try_GetList_ByBirthDate_Test()
@@ -101,11 +89,12 @@ class EmployeeStorageContractTests : BaseStorageContractTest
public void Try_GetList_ByAllParameters_Test()
{
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 2", postId, "email@mail.ru", 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 4", postId, "email@mail.ru", 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));
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 1", postId, birthDate: DateTime.UtcNow.AddYears(-25), employmentDate: DateTime.UtcNow.AddDays(-2));
InsertEmployeeToDatabaseAndReturn(Guid.NewGuid().ToString(), "fio 2", postId, birthDate: DateTime.UtcNow.AddYears(-22), 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", 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));
}
@@ -222,8 +211,8 @@ 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) =>
new(id, fio, postId ?? Guid.NewGuid().ToString(), email, birthDate ?? DateTime.UtcNow.AddYears(-20), employmentDate ?? DateTime.UtcNow, isDeleted);
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);
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();
Assert.That(list, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(3));
AssertElement(list.First(x => x.Id == tour.Id), tour);
AssertElement(list.First(), tour);
}
[Test]
@@ -53,25 +53,15 @@ 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 list = _tourStorageContract.GetHistoryByTourId(tour.Id);
Assert.That(list, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(3));
var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
AssertElement(_tourStorageContract.GetElementById(tour.Id), tour);
}
[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 list = _tourStorageContract.GetHistoryByTourId(Guid.NewGuid().ToString());
Assert.That(list, Is.Not.Null);
Assert.That(list, Has.Count.EqualTo(0));
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
Assert.That(() => _tourStorageContract.GetElementById(Guid.NewGuid().ToString()), Is.Null);
}
[Test]
@@ -103,97 +93,69 @@ internal class TourStorageContractTests : BaseStorageContractTest
}
[Test]
public void Try_AddElement_WhenIsDeletedIsTrue_Test()
public void Try_AddElement_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), "name");
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.Nothing);
AssertElement(GetTourFromDatabaseById(tour.Id), CreateModel(tour.Id, _manufacturer.Id, isDeleted: false));
var tour = CreateModel(Guid.NewGuid().ToString(), "tour1");
_tourStorageContract.AddElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), tour);
}
[Test]
public void Try_AddElement_WhenHaveRecordWithSameId_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id);
InsertTourToDatabaseAndReturn(tour.Id, "name1", tourName: "name unique");
var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id);
Assert.That(() => _tourStorageContract.AddElement(tour), Throws.TypeOf<ElementExistsException>());
}
[Test]
public void Try_AddElement_WhenHaveRecordWithSameName_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, "name unique", isDeleted: false);
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), _manufacturer.Id, tourName: tour.TourName, isDeleted: false);
var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tour.TourName);
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]
public void Try_UpdElement_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, isDeleted: false);
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, isDeleted: false);
var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id, tourName: tour.TourName);
_tourStorageContract.UpdElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), tour);
}
[Test]
public void Try_UpdElement_WhenIsDeletedIsTrue_Test()
public void Try_UpdElement_WhenNoChangeName_Test()
{
var tour = CreateModel(Guid.NewGuid().ToString(), _manufacturer.Id, isDeleted: true);
InsertTourToDatabaseAndReturn(tour.Id, _manufacturer.Id, isDeleted: false);
var tour = CreateModel(Guid.NewGuid().ToString(), "Name");
InsertTourToDatabaseAndReturn(tour.Id, tour.TourName);
_tourStorageContract.UpdElement(tour);
AssertElement(GetTourFromDatabaseById(tour.Id), CreateModel(tour.Id, _manufacturer.Id, isDeleted: false));
AssertElement(GetTourFromDatabaseById(tour.Id), tour);
}
[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]
public void Try_UpdElement_WhenHaveRecordWithSameName_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);
var tour = CreateModel(Guid.NewGuid().ToString(), "Duplicate Name");
InsertTourToDatabaseAndReturn(tour.Id, "Old Name");
InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), tour.TourName);
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]
public void Try_DelElement_Test()
{
var tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString());
_tourStorageContract.DelElement(tour.Id);
var element = GetTourFromDatabaseById(tour.Id);
Assert.Multiple(() =>
{
Assert.That(element, Is.Not.Null);
});
Assert.That(element, Is.Null);
}
[Test]
@@ -202,22 +164,14 @@ internal class TourStorageContractTests : BaseStorageContractTest
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.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);
@@ -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);
private Tour? GetTourFromDatabaseById(string id) => MagicCarpetDbContext.Tours.FirstOrDefault(x => x.Id == id);