forked from slavaxom9k/PIBD-23_Fomichev_V.S._MagicCarpet
изменения в тестах
This commit is contained in:
@@ -39,9 +39,9 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Arrange
|
//Arrange
|
||||||
var listOriginal = new List<TourDataModel>()
|
var listOriginal = new List<TourDataModel>()
|
||||||
{
|
{
|
||||||
new(Guid.NewGuid().ToString(), "name 1", "country1", 15.5, TourType.Ski, [],[]),
|
new(Guid.NewGuid().ToString(), "name 1", "country1", 15.5, TourType.Ski),
|
||||||
new(Guid.NewGuid().ToString(), "name 2", "country2", 10.1, TourType.Sightseeing,[],[]),
|
new(Guid.NewGuid().ToString(), "name 2", "country2", 10.1, TourType.Sightseeing),
|
||||||
new(Guid.NewGuid().ToString(), "name 3", "country3", 13.9, TourType.Beach,[],[]),
|
new(Guid.NewGuid().ToString(), "name 3", "country3", 13.9, TourType.Beach),
|
||||||
};
|
};
|
||||||
_tourStorageContract.Setup(x => x.GetList()).Returns(listOriginal);
|
_tourStorageContract.Setup(x => x.GetList()).Returns(listOriginal);
|
||||||
//Act
|
//Act
|
||||||
@@ -155,7 +155,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var id = Guid.NewGuid().ToString();
|
var id = Guid.NewGuid().ToString();
|
||||||
var record = new TourDataModel(id, "name", "country", 10, TourType.Ski, [], []);
|
var record = new TourDataModel(id, "name", "country", 10, TourType.Ski);
|
||||||
_tourStorageContract.Setup(x => x.GetElementById(id)).Returns(record);
|
_tourStorageContract.Setup(x => x.GetElementById(id)).Returns(record);
|
||||||
//Act
|
//Act
|
||||||
var element = _tourBusinessLogicContract.GetTourByData(id);
|
var element = _tourBusinessLogicContract.GetTourByData(id);
|
||||||
@@ -170,7 +170,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var name = "name";
|
var name = "name";
|
||||||
var record = new TourDataModel(Guid.NewGuid().ToString(), name, "country", 10, TourType.Ski, [], []);
|
var record = new TourDataModel(Guid.NewGuid().ToString(), name, "country", 10, TourType.Ski);
|
||||||
_tourStorageContract.Setup(x => x.GetElementByName(name)).Returns(record);
|
_tourStorageContract.Setup(x => x.GetElementByName(name)).Returns(record);
|
||||||
//Act
|
//Act
|
||||||
var element = _tourBusinessLogicContract.GetTourByData(name);
|
var element = _tourBusinessLogicContract.GetTourByData(name);
|
||||||
@@ -184,7 +184,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var country = "country";
|
var country = "country";
|
||||||
var record = new TourDataModel(Guid.NewGuid().ToString(), "name", country, 10, TourType.Ski, [], []);
|
var record = new TourDataModel(Guid.NewGuid().ToString(), "name", country, 10, TourType.Ski);
|
||||||
_tourStorageContract.Setup(x => x.GetElementByName(country)).Returns(record);
|
_tourStorageContract.Setup(x => x.GetElementByName(country)).Returns(record);
|
||||||
//Act
|
//Act
|
||||||
var element = _tourBusinessLogicContract.GetTourByData(country);
|
var element = _tourBusinessLogicContract.GetTourByData(country);
|
||||||
@@ -245,9 +245,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var flag = false;
|
var flag = false;
|
||||||
var record = new TourDataModel(Guid.NewGuid().ToString(), "name","country",10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
var record = new TourDataModel(Guid.NewGuid().ToString(), "name","country",10, TourType.Ski);
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)]);
|
|
||||||
_agencyStorageContract.Setup(x => x.CheckComponents(It.IsAny<TourDataModel>())).Returns(true);
|
|
||||||
_tourStorageContract.Setup(x => x.AddElement(It.IsAny<TourDataModel>()))
|
_tourStorageContract.Setup(x => x.AddElement(It.IsAny<TourDataModel>()))
|
||||||
.Callback((TourDataModel x) =>
|
.Callback((TourDataModel x) =>
|
||||||
{
|
{
|
||||||
@@ -257,7 +255,6 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Act
|
//Act
|
||||||
_tourBusinessLogicContract.InsertTour(record);
|
_tourBusinessLogicContract.InsertTour(record);
|
||||||
//Assert
|
//Assert
|
||||||
_agencyStorageContract.Verify(x => x.CheckComponents(It.IsAny<TourDataModel>()), Times.Once);
|
|
||||||
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Once);
|
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Once);
|
||||||
Assert.That(flag);
|
Assert.That(flag);
|
||||||
}
|
}
|
||||||
@@ -268,8 +265,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Arrange
|
//Arrange
|
||||||
_tourStorageContract.Setup(x => x.AddElement(It.IsAny<TourDataModel>())).Throws(new ElementExistsException("Data", "Data"));
|
_tourStorageContract.Setup(x => x.AddElement(It.IsAny<TourDataModel>())).Throws(new ElementExistsException("Data", "Data"));
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.InsertTour(new(Guid.NewGuid().ToString(), "name","country",10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.InsertTour(new(Guid.NewGuid().ToString(), "name","country",10, TourType.Ski)), Throws.TypeOf<ElementExistsException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf<ElementExistsException>());
|
|
||||||
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Once);
|
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Once);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +281,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
public void InsertTour_InvalidRecord_ThrowException_Test()
|
public void InsertTour_InvalidRecord_ThrowException_Test()
|
||||||
{
|
{
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel("id", "name", "country", 10, TourType.Ski, [], [])), Throws.TypeOf<ValidationException>());
|
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel("id", "name", "country", 10, TourType.Ski)), Throws.TypeOf<ValidationException>());
|
||||||
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Never);
|
_tourStorageContract.Verify(x => x.AddElement(It.IsAny<TourDataModel>()), Times.Never);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,8 +289,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
public void InsertTour_StorageThrowError_ThrowException_Test()
|
public void InsertTour_StorageThrowError_ThrowException_Test()
|
||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel(Guid.NewGuid().ToString(), "name","country", 10, TourType.Ski,
|
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel(Guid.NewGuid().ToString(), "name","country", 10, TourType.Ski)), Throws.TypeOf<InsufficientException>());
|
||||||
[new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)], [new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf<InsufficientException>());
|
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
||||||
}
|
}
|
||||||
@@ -303,8 +298,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
public void InsertFurniture_InsufficientError_ThrowException_Test()
|
public void InsertFurniture_InsufficientError_ThrowException_Test()
|
||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.InsertTour(new TourDataModel(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski)),Throws.TypeOf<InsufficientException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])),Throws.TypeOf<InsufficientException>());
|
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
||||||
}
|
}
|
||||||
@@ -314,8 +308,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
{
|
{
|
||||||
//Arrange
|
//Arrange
|
||||||
var flag = false;
|
var flag = false;
|
||||||
var record = new TourDataModel(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
var record = new TourDataModel(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski);
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)]);
|
|
||||||
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>()))
|
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>()))
|
||||||
.Callback((TourDataModel x) =>
|
.Callback((TourDataModel x) =>
|
||||||
{
|
{
|
||||||
@@ -335,8 +328,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Arrange
|
//Arrange
|
||||||
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new ElementNotFoundException(""));
|
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new ElementNotFoundException(""));
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski)), Throws.TypeOf<ElementNotFoundException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf<ElementNotFoundException>());
|
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,8 +338,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Arrange
|
//Arrange
|
||||||
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new ElementExistsException("Data", "Data"));
|
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new ElementExistsException("Data", "Data"));
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski)), Throws.TypeOf <ElementExistsException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf <ElementExistsException>());
|
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,8 +354,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
public void UpdateTour_InvalidRecord_ThrowException_Test()
|
public void UpdateTour_InvalidRecord_ThrowException_Test()
|
||||||
{
|
{
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new TourDataModel("id", "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new TourDataModel("id", "name", "country", 10, TourType.Ski)), Throws.TypeOf<ValidationException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf<ValidationException>());
|
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Never);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,8 +364,7 @@ internal class TourBusinessLogicContractTests
|
|||||||
//Arrange
|
//Arrange
|
||||||
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new StorageException(new InvalidOperationException()));
|
_tourStorageContract.Setup(x => x.UpdElement(It.IsAny<TourDataModel>())).Throws(new StorageException(new InvalidOperationException()));
|
||||||
//Act&Assert
|
//Act&Assert
|
||||||
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski, [new TourSuppliesDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)],
|
Assert.That(() => _tourBusinessLogicContract.UpdateTour(new(Guid.NewGuid().ToString(), "name", "country", 10, TourType.Ski)), Throws.TypeOf<StorageException>());
|
||||||
[new TourAgencyDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 5)])), Throws.TypeOf<StorageException>());
|
|
||||||
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
_tourStorageContract.Verify(x => x.UpdElement(It.IsAny<TourDataModel>()), Times.Once);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,78 +15,49 @@ internal class TourDataModelTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void IdIsNullOrEmptyTest()
|
public void IdIsNullOrEmptyTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel(null, "name", "country", 10.5, TourType.Beach,
|
var tour = CreateDataModel(null, "name", "country", 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
tour = CreateDataModel(string.Empty, "name", "country", 10.5, TourType.Beach);
|
||||||
cocktail = CreateDataModel(string.Empty, "name", "country", 10.5, TourType.Beach,
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void IdIsNotGuidTest()
|
public void IdIsNotGuidTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel("id", "name", "country", 10.5, TourType.Beach,
|
var tour = CreateDataModel("id", "name", "country", 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TourNameIsNullOrEmptyTest()
|
public void TourNameIsNullOrEmptyTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), null, "country", 10.5, TourType.Beach,
|
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), null, "country", 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
cocktail = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "country", 10.5, TourType.Beach,
|
cocktail = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "country", 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
public void TourCountryIsNullOrEmptyTest()
|
public void TourCountryIsNullOrEmptyTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), "name", null, 10.5, TourType.Beach,
|
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), "name", null, 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
cocktail = CreateDataModel(Guid.NewGuid().ToString(), "name", string.Empty, 10.5, TourType.Beach,
|
cocktail = CreateDataModel(Guid.NewGuid().ToString(), "name", string.Empty, 10.5, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void PriceIsLessOrZeroTest()
|
public void PriceIsLessOrZeroTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), null, null, 0, TourType.Beach,
|
var tour = CreateDataModel(Guid.NewGuid().ToString(), null, null, 0, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
tour = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, string.Empty, -10.5, TourType.Beach);
|
||||||
cocktail = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, string.Empty, -10.5, TourType.Beach,
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TourTypeIsNoneTest()
|
public void TourTypeIsNoneTest()
|
||||||
{
|
{
|
||||||
var cocktail = CreateDataModel(Guid.NewGuid().ToString(), null, null, 0, TourType.Beach,
|
var tour = CreateDataModel(Guid.NewGuid().ToString(), null, null, 0, TourType.Beach);
|
||||||
CreateSuppliesDataModel(), CreateAgencyDataModel());
|
Assert.That(() => tour.Validate(), Throws.TypeOf<ValidationException>());
|
||||||
Assert.That(() => cocktail.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
|
||||||
[Test]
|
|
||||||
public void SuppliesIsEmptyOrNullTest()
|
|
||||||
{
|
|
||||||
var model = CreateDataModel(Guid.NewGuid().ToString(), "name", "country", 10.5, TourType.Beach, [], CreateAgencyDataModel());
|
|
||||||
Assert.That(() => model.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
|
|
||||||
model = CreateDataModel(Guid.NewGuid().ToString(), "name", "country", 10.5, TourType.Beach, null, CreateAgencyDataModel());
|
|
||||||
Assert.That(() => model.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void AgencyIsEmptyOrNullTest()
|
|
||||||
{
|
|
||||||
var model = CreateDataModel(Guid.NewGuid().ToString(), "name", "country", 10.5, TourType.Beach, CreateSuppliesDataModel(), []);
|
|
||||||
Assert.That(() => model.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
|
|
||||||
model = CreateDataModel(Guid.NewGuid().ToString(), "name", "country", 10.5, TourType.Beach, CreateSuppliesDataModel(), null);
|
|
||||||
Assert.That(() => model.Validate(), Throws.TypeOf<ValidationException>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@@ -99,7 +70,7 @@ internal class TourDataModelTests
|
|||||||
var tourType = TourType.Ski;
|
var tourType = TourType.Ski;
|
||||||
var supplies = CreateSuppliesDataModel();
|
var supplies = CreateSuppliesDataModel();
|
||||||
var agency = CreateAgencyDataModel();
|
var agency = CreateAgencyDataModel();
|
||||||
var tour = CreateDataModel(tourId, tourName, tourCountry, price, tourType, supplies, agency);
|
var tour = CreateDataModel(tourId, tourName, tourCountry, price, tourType);
|
||||||
Assert.That(() => tour.Validate(), Throws.Nothing);
|
Assert.That(() => tour.Validate(), Throws.Nothing);
|
||||||
Assert.Multiple(() =>
|
Assert.Multiple(() =>
|
||||||
{
|
{
|
||||||
@@ -108,14 +79,11 @@ internal class TourDataModelTests
|
|||||||
Assert.That(tour.TourCountry, Is.EqualTo(tourCountry));
|
Assert.That(tour.TourCountry, Is.EqualTo(tourCountry));
|
||||||
Assert.That(tour.Price, Is.EqualTo(price));
|
Assert.That(tour.Price, Is.EqualTo(price));
|
||||||
Assert.That(tour.Type, Is.EqualTo(tourType));
|
Assert.That(tour.Type, Is.EqualTo(tourType));
|
||||||
Assert.That(tour.Supplies, Is.EqualTo(supplies));
|
|
||||||
Assert.That(tour.Agency, Is.EqualTo(agency));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static TourDataModel CreateDataModel(string? id, string? tourName, string? countryName, double price, TourType tourType,
|
private static TourDataModel CreateDataModel(string? id, string? tourName, string? countryName, double price, TourType tourType) =>
|
||||||
List<TourSuppliesDataModel> supplies, List<TourAgencyDataModel> agency) =>
|
new(id, tourName, countryName,price, tourType);
|
||||||
new(id, tourName, countryName,price, tourType, supplies, agency);
|
|
||||||
private static List<TourSuppliesDataModel> CreateSuppliesDataModel()
|
private static List<TourSuppliesDataModel> CreateSuppliesDataModel()
|
||||||
=> [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];
|
=> [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.2" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
|
||||||
<PackageReference Include="Moq" Version="4.20.72" />
|
<PackageReference Include="Moq" Version="4.20.72" />
|
||||||
<PackageReference Include="NUnit" Version="3.14.0" />
|
<PackageReference Include="NUnit" Version="3.14.0" />
|
||||||
|
|||||||
@@ -0,0 +1,215 @@
|
|||||||
|
using MagicCarpetContracts.Exceptions;
|
||||||
|
using MagicCarpetDatabase.Implementations;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using MagicCarpetDatabase.Models;
|
||||||
|
using MagicCarpetContracts.Enums;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using MagicCarpetContracts.DataModels;
|
||||||
|
|
||||||
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
|
[TestFixture]
|
||||||
|
internal class AgencyStorageContractTests : BaseStorageContractTest
|
||||||
|
{
|
||||||
|
private AgencyStorageContract _agencyStorageContract;
|
||||||
|
private Tour _tour;
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void SetUp()
|
||||||
|
{
|
||||||
|
_agencyStorageContract = new AgencyStorageContract(MagicCarpetDbContext);
|
||||||
|
_tour = InsertTourToDatabaseAndReturn(Guid.NewGuid().ToString(), "name", TourType.Sightseeing);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TearDown]
|
||||||
|
public void TearDown()
|
||||||
|
{
|
||||||
|
MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Agencies\" CASCADE;");
|
||||||
|
MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Tours\" CASCADE;");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetList_WhenHaveRecords_Test()
|
||||||
|
{
|
||||||
|
var agency = InsertAgencyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Sightseeing, 5);
|
||||||
|
InsertAgencyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Sightseeing, 5);
|
||||||
|
InsertAgencyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Sightseeing, 5);
|
||||||
|
var list = _agencyStorageContract.GetList();
|
||||||
|
Assert.That(list, Is.Not.Null);
|
||||||
|
Assert.That(list, Has.Count.EqualTo(3));
|
||||||
|
AssertElement(list.First(), agency);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetList_WhenNoRecords_Test()
|
||||||
|
{
|
||||||
|
var list = _agencyStorageContract.GetList();
|
||||||
|
Assert.That(list, Is.Not.Null);
|
||||||
|
Assert.That(list, Is.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetElementById_WhenHaveRecord_Test()
|
||||||
|
{
|
||||||
|
var agency = InsertAgencyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Sightseeing, 5);
|
||||||
|
var result = _agencyStorageContract.GetElementById(agency.Id);
|
||||||
|
AssertElement(result, agency);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetElementById_WhenNoRecord_Test()
|
||||||
|
{
|
||||||
|
Assert.That(() => _agencyStorageContract.GetElementById(Guid.NewGuid().ToString()), Is.Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_AddElement_WhenValidData_Test()
|
||||||
|
{
|
||||||
|
var agency = CreateModel(Guid.NewGuid().ToString(), TourType.Sightseeing, 5, [_tour.Id]);
|
||||||
|
_agencyStorageContract.AddElement(agency);
|
||||||
|
var result = GetAgencyFromDatabaseById(agency.Id);
|
||||||
|
AssertElement(result, agency);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_AddElement_WhenHaveRecordWithSameId_Test()
|
||||||
|
{
|
||||||
|
var agency = CreateModel(Guid.NewGuid().ToString(), TourType.Sightseeing, 5, [_tour.Id]);
|
||||||
|
InsertAgencyToDatabaseAndReturn(agency.Id, TourType.Sightseeing, 5, [(_tour.Id, 3)]);
|
||||||
|
Assert.That(() => _agencyStorageContract.AddElement(agency), Throws.TypeOf<StorageException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_AddElement_WhenNoHaveTour_Test()
|
||||||
|
{
|
||||||
|
var agency = CreateModel(Guid.NewGuid().ToString(), TourType.Sightseeing, 0, [_tour.Id]);
|
||||||
|
InsertAgencyToDatabaseAndReturn(agency.Id, TourType.Sightseeing, 5, [(_tour.Id, 3)]);
|
||||||
|
Assert.That(() => _agencyStorageContract.AddElement(agency), Throws.TypeOf<StorageException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_UpdElement_WhenValidData_Test()
|
||||||
|
{
|
||||||
|
var agency = CreateModel(Guid.NewGuid().ToString(), TourType.Sightseeing, 5, [_tour.Id]);
|
||||||
|
InsertAgencyToDatabaseAndReturn(agency.Id, TourType.Ski, 10, null);
|
||||||
|
_agencyStorageContract.UpdElement(agency);
|
||||||
|
var result = GetAgencyFromDatabaseById(agency.Id);
|
||||||
|
AssertElement(result, agency);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_UpdElement_WhenNoRecordWithThisId_Test()
|
||||||
|
{
|
||||||
|
var agency = CreateModel(Guid.NewGuid().ToString(), TourType.Sightseeing, 5, [_tour.Id]);
|
||||||
|
Assert.That(() => _agencyStorageContract.UpdElement(agency), Throws.TypeOf<ElementNotFoundException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_DelElement_WhenRecordExists_Test()
|
||||||
|
{
|
||||||
|
var agency = InsertAgencyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Sightseeing, 5);
|
||||||
|
_agencyStorageContract.DelElement(agency.Id);
|
||||||
|
var result = GetAgencyFromDatabaseById(agency.Id);
|
||||||
|
Assert.That(result, Is.Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_DelElement_WhenRecordDoesNotExist_ThrowsElementNotFoundException()
|
||||||
|
{
|
||||||
|
Assert.That(() => _agencyStorageContract.DelElement(Guid.NewGuid().ToString()), Throws.TypeOf<ElementNotFoundException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tour InsertTourToDatabaseAndReturn(string id, string name, TourType type)
|
||||||
|
{
|
||||||
|
var tour = new Tour { Id = id, TourName = name, Type = type };
|
||||||
|
MagicCarpetDbContext.Tours.Add(tour);
|
||||||
|
MagicCarpetDbContext.SaveChanges();
|
||||||
|
return tour;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Agency InsertAgencyToDatabaseAndReturn(string id, TourType type, int count, List<(string, int)>? tours = null)
|
||||||
|
{
|
||||||
|
var agency = new Agency { Id = id, Type = type, Count = count, Tours = [] };
|
||||||
|
if (tours is not null)
|
||||||
|
{
|
||||||
|
foreach (var elem in tours)
|
||||||
|
{
|
||||||
|
agency.Tours.Add(new TourAgency { AgencyId = agency.Id, TourId = elem.Item1, Count = elem.Item2 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MagicCarpetDbContext.Agencies.Add(agency);
|
||||||
|
MagicCarpetDbContext.SaveChanges();
|
||||||
|
return agency;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertElement(AgencyDataModel? actual, Agency expected)
|
||||||
|
{
|
||||||
|
Assert.That(actual, Is.Not.Null);
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Id, Is.EqualTo(expected.Id));
|
||||||
|
Assert.That(actual.Type, Is.EqualTo(expected.Type));
|
||||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count));
|
||||||
|
});
|
||||||
|
if (expected.Tours is not null)
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Not.Null);
|
||||||
|
Assert.That(actual.Tours, Has.Count.EqualTo(expected.Tours.Count));
|
||||||
|
for (int i = 0; i < actual.Tours.Count; ++i)
|
||||||
|
{
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours[i].TourId, Is.EqualTo(expected.Tours[i].TourId));
|
||||||
|
Assert.That(actual.Tours[i].Count, Is.EqualTo(expected.Tours[i].Count));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertElement(Agency? actual, AgencyDataModel expected)
|
||||||
|
{
|
||||||
|
Assert.That(actual, Is.Not.Null);
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Id, Is.EqualTo(expected.Id));
|
||||||
|
Assert.That(actual.Type, Is.EqualTo(expected.Type));
|
||||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count));
|
||||||
|
});
|
||||||
|
if (expected.Tours is not null)
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Not.Null);
|
||||||
|
Assert.That(actual.Tours, Has.Count.EqualTo(expected.Tours.Count));
|
||||||
|
for (int i = 0; i < actual.Tours.Count; ++i)
|
||||||
|
{
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours[i].TourId, Is.EqualTo(expected.Tours[i].TourId));
|
||||||
|
Assert.That(actual.Tours[i].Count, Is.EqualTo(expected.Tours[i].Count));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static AgencyDataModel CreateModel(string id, TourType type, int count, List<string> toursIds)
|
||||||
|
{
|
||||||
|
var tours = toursIds.Select(x => new TourAgencyDataModel(id, x, 1)).ToList();
|
||||||
|
return new(id, type, count, tours);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Agency? GetAgencyFromDatabaseById(string id)
|
||||||
|
{
|
||||||
|
return MagicCarpetDbContext.Agencies.FirstOrDefault(x => x.Id == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
internal abstract class BaseStorageContractTest
|
internal abstract class BaseStorageContractTest
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
using MagicCarpetContracts.DataModels;
|
using MagicCarpetContracts.DataModels;
|
||||||
using MagicCarpetContracts.Enums;
|
using MagicCarpetContracts.Enums;
|
||||||
using MagicCarpetContracts.Exceptions;
|
using MagicCarpetContracts.Exceptions;
|
||||||
using MagicCarpetContracts.StoragesContracts;
|
|
||||||
using MagicCarpetDatabase.Implementations;
|
using MagicCarpetDatabase.Implementations;
|
||||||
using MagicCarpetDatabase.Models;
|
using MagicCarpetDatabase.Models;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@@ -11,7 +10,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
internal class ClientStorageContractTests : BaseStorageContractTest
|
internal class ClientStorageContractTests : BaseStorageContractTest
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
class EmployeeStorageContractTests : BaseStorageContractTest
|
class EmployeeStorageContractTests : BaseStorageContractTest
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
internal class SalaryStorageContractTests : BaseStorageContractTest
|
internal class SalaryStorageContractTests : BaseStorageContractTest
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using static NUnit.Framework.Internal.OSPlatform;
|
using static NUnit.Framework.Internal.OSPlatform;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
internal class SaleStorageContractTests : BaseStorageContractTest
|
internal class SaleStorageContractTests : BaseStorageContractTest
|
||||||
|
|||||||
@@ -0,0 +1,191 @@
|
|||||||
|
using MagicCarpetContracts.DataModels;
|
||||||
|
using MagicCarpetContracts.Enums;
|
||||||
|
using MagicCarpetContracts.Exceptions;
|
||||||
|
using MagicCarpetDatabase.Implementations;
|
||||||
|
using MagicCarpetDatabase.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
|
[TestFixture]
|
||||||
|
internal class SuppliesStorageContractTests : BaseStorageContractTest
|
||||||
|
{
|
||||||
|
private SuppliesStorageContract _suppliesStorageContract;
|
||||||
|
private Tour _tour;
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void SetUp()
|
||||||
|
{
|
||||||
|
_suppliesStorageContract = new SuppliesStorageContract(MagicCarpetDbContext);
|
||||||
|
_tour = InsertTourToDatabaseAndReturn();
|
||||||
|
}
|
||||||
|
|
||||||
|
[TearDown]
|
||||||
|
public void TearDown()
|
||||||
|
{
|
||||||
|
MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Supplieses\" CASCADE;");
|
||||||
|
MagicCarpetDbContext.Database.ExecuteSqlRaw("TRUNCATE \"Tours\" CASCADE;");
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetList_WhenHaveRecords_Test()
|
||||||
|
{
|
||||||
|
var supply = InsertSupplyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Ski, 5);
|
||||||
|
InsertSupplyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Ski, 5);
|
||||||
|
InsertSupplyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Ski, 5);
|
||||||
|
var list = _suppliesStorageContract.GetList();
|
||||||
|
Assert.That(list, Is.Not.Null);
|
||||||
|
Assert.That(list, Has.Count.EqualTo(3));
|
||||||
|
AssertElement(list.First(), supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetList_WhenNoRecords_Test()
|
||||||
|
{
|
||||||
|
var list = _suppliesStorageContract.GetList();
|
||||||
|
Assert.That(list, Is.Not.Null);
|
||||||
|
Assert.That(list, Is.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetElementById_WhenHaveRecord_Test()
|
||||||
|
{
|
||||||
|
var supply = InsertSupplyToDatabaseAndReturn(Guid.NewGuid().ToString(), TourType.Ski, 5);
|
||||||
|
AssertElement(_suppliesStorageContract.GetElementById(supply.Id), supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_GetElementById_WhenNoRecord_Test()
|
||||||
|
{
|
||||||
|
Assert.That(() => _suppliesStorageContract.GetElementById(Guid.NewGuid().ToString()), Is.Null);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_AddElement_Test()
|
||||||
|
{
|
||||||
|
var supply = CreateModel(Guid.NewGuid().ToString(), TourType.Ski, 5, [_tour.Id]);
|
||||||
|
_suppliesStorageContract.AddElement(supply);
|
||||||
|
AssertElement(GetSupplyFromDatabaseById(supply.Id), supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_AddElement_WhenHaveRecordWithSameId_Test()
|
||||||
|
{
|
||||||
|
var supply = CreateModel(Guid.NewGuid().ToString(), TourType.Ski, 5, [_tour.Id]);
|
||||||
|
InsertSupplyToDatabaseAndReturn(supply.Id, TourType.Ski, 5, [(_tour.Id, 3)]);
|
||||||
|
Assert.That(() => _suppliesStorageContract.AddElement(supply), Throws.TypeOf<StorageException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_UpdElement_Test()
|
||||||
|
{
|
||||||
|
var supply = CreateModel(Guid.NewGuid().ToString(), TourType.Ski, 5, [_tour.Id]);
|
||||||
|
InsertSupplyToDatabaseAndReturn(supply.Id, TourType.Ski, 5, null);
|
||||||
|
_suppliesStorageContract.UpdElement(supply);
|
||||||
|
AssertElement(GetSupplyFromDatabaseById(supply.Id), supply);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Try_UpdElement_WhenNoRecordWithThisId_Test()
|
||||||
|
{
|
||||||
|
Assert.That(() => _suppliesStorageContract.UpdElement(CreateModel(Guid.NewGuid().ToString(), TourType.Ski, 5, [_tour.Id])), Throws.TypeOf<ElementNotFoundException>());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Tour InsertTourToDatabaseAndReturn()
|
||||||
|
{
|
||||||
|
var tour = new Tour { Id = Guid.NewGuid().ToString(), TourName = "Test Tour", Type = TourType.Ski };
|
||||||
|
MagicCarpetDbContext.Tours.Add(tour);
|
||||||
|
MagicCarpetDbContext.SaveChanges();
|
||||||
|
return tour;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Supplies InsertSupplyToDatabaseAndReturn(string id, TourType type, int count, List<(string, int)>? tours = null)
|
||||||
|
{
|
||||||
|
var supply = new Supplies { Id = id, Type = type, ProductuionDate = DateTime.UtcNow, Count = count, Tours = [] };
|
||||||
|
if (tours is not null)
|
||||||
|
{
|
||||||
|
foreach (var elem in tours)
|
||||||
|
{
|
||||||
|
supply.Tours.Add(new TourSupplies { SuppliesId = supply.Id, TourId = elem.Item1, Count = elem.Item2 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MagicCarpetDbContext.Supplieses.Add(supply);
|
||||||
|
MagicCarpetDbContext.SaveChanges();
|
||||||
|
return supply;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertElement(SuppliesDataModel? actual, Supplies expected)
|
||||||
|
{
|
||||||
|
Assert.That(actual, Is.Not.Null);
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Id, Is.EqualTo(expected.Id));
|
||||||
|
Assert.That(actual.Type, Is.EqualTo(expected.Type));
|
||||||
|
Assert.That(actual.ProductuionDate, Is.EqualTo(expected.ProductuionDate));
|
||||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count));
|
||||||
|
});
|
||||||
|
if (expected.Tours is not null)
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Not.Null);
|
||||||
|
Assert.That(actual.Tours, Has.Count.EqualTo(expected.Tours.Count));
|
||||||
|
for (int i = 0; i < actual.Tours.Count; ++i)
|
||||||
|
{
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours[i].TourId, Is.EqualTo(expected.Tours[i].TourId));
|
||||||
|
Assert.That(actual.Tours[i].Count, Is.EqualTo(expected.Tours[i].Count));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AssertElement(Supplies? actual, SuppliesDataModel expected)
|
||||||
|
{
|
||||||
|
Assert.That(actual, Is.Not.Null);
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Id, Is.EqualTo(expected.Id));
|
||||||
|
Assert.That(actual.Type, Is.EqualTo(expected.Type));
|
||||||
|
Assert.That(actual.ProductuionDate, Is.EqualTo(expected.ProductuionDate));
|
||||||
|
Assert.That(actual.Count, Is.EqualTo(expected.Count));
|
||||||
|
});
|
||||||
|
if (expected.Tours is not null)
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Not.Null);
|
||||||
|
Assert.That(actual.Tours, Has.Count.EqualTo(expected.Tours.Count));
|
||||||
|
for (int i = 0; i < actual.Tours.Count; ++i)
|
||||||
|
{
|
||||||
|
Assert.Multiple(() =>
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours[i].TourId, Is.EqualTo(expected.Tours[i].TourId));
|
||||||
|
Assert.That(actual.Tours[i].Count, Is.EqualTo(expected.Tours[i].Count));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Assert.That(actual.Tours, Is.Null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SuppliesDataModel CreateModel(string id, TourType type, int count, List<string> toursIds)
|
||||||
|
{
|
||||||
|
var tours = toursIds.Select(x => new TourSuppliesDataModel(id, x, 1)).ToList();
|
||||||
|
return new(id, type, DateTime.UtcNow, count, tours);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Supplies? GetSupplyFromDatabaseById(string id)
|
||||||
|
{
|
||||||
|
return MagicCarpetDbContext.Supplieses.FirstOrDefault(x => x.Id == id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,7 +12,7 @@ using System.Text;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using static NUnit.Framework.Internal.OSPlatform;
|
using static NUnit.Framework.Internal.OSPlatform;
|
||||||
|
|
||||||
namespace MagicCarpetTests.StoragesContracts;
|
namespace MagicCarpetTests.StoragesContractsTests;
|
||||||
|
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
internal class TourStorageContractTests : BaseStorageContractTest
|
internal class TourStorageContractTests : BaseStorageContractTest
|
||||||
|
|||||||
Reference in New Issue
Block a user