using BitterlyAndExclamationMarkContracts.DataModels; using BitterlyAndExclamationMarkContracts.Exceptions; namespace BitterlyAndExclamationMarkTests.DataModelsTests; [TestFixture] internal class BuyerDataModelTests { [Test] public void IdIsNullOrEmptyTest() { var buyer = CreateDataModel(null, "Фамилия Имя Отчество", "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); buyer = CreateDataModel(string.Empty, "Фамилия Имя Отчество", "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var buyer = CreateDataModel("id", "Фамилия Имя Отчество", "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void FIOIsNullOrEmptyTest() { var buyer = CreateDataModel(Guid.NewGuid().ToString(), null, "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); buyer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void FIOIsIncorrectTest() { var buyer = CreateDataModel(Guid.NewGuid().ToString(), "Ф", "+7-777-777-77-77", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void PhoneNumberIsNullOrEmptyTest() { var buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", null, 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", string.Empty, 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void PhoneNumberIsIncorrectTest() { var buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", "777", 10); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsIsCorrectTest() { var buyerId = Guid.NewGuid().ToString(); var fio = "Фамилия Имя Отчество"; var phoneNumber = "+7-777-777-77-77"; var scoreCount = 11; var buyer = CreateDataModel(buyerId, fio, phoneNumber, scoreCount); Assert.That(() => buyer.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(buyer.Id, Is.EqualTo(buyerId)); Assert.That(buyer.FIO, Is.EqualTo(fio)); Assert.That(buyer.PhoneNumber, Is.EqualTo(phoneNumber)); Assert.That(buyer.ScoreCount, Is.EqualTo(scoreCount)); }); } private static BuyerDataModel CreateDataModel(string? id, string? fio, string? phoneNumber, int scoreCount) => new(id, fio, phoneNumber, scoreCount); }