using Microsoft.VisualStudio.TestTools.UnitTesting; using ConsoleAppForUniqWear; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace UnitTestProject4 { [TestClass] public class UserServiceTests { private UserService _userService; private TestDatabaseClient _testClient; [TestInitialize] public void Setup() { _testClient = new TestDatabaseClient(); _userService = new UserService(_testClient); } [TestMethod] public async Task GetUserByIdAsync_ValidId_ReturnsUser() { // Подготовка var existingUser = await _testClient.GetAllUsers(); var userId = existingUser.First().Id; // Получаем ID первого пользователя // Действие var user = await _userService.GetUserByIdAsync(userId); // Проверка Assert.IsNotNull(user, "Пользователь не должен быть равен null"); Assert.AreEqual(userId, user.Id, "ID пользователя должен соответствовать запрашиваемому ID"); Assert.AreEqual("John", user.FirstName, "Имя должно быть John"); } [TestMethod] public async Task GetUserByIdAsync_InvalidId_ReturnsNull() { // Подготовка var invalidUserId = Guid.NewGuid(); // Генерируем случайный ID // Действие var user = await _userService.GetUserByIdAsync(invalidUserId); // Проверка Assert.IsNull(user, "Пользователь должен быть равен null для недействительного ID"); } [TestMethod] public async Task GetAllUsersAsync_ReturnsAllUsers() { // Действие var users = await _userService.GetAllUsersAsync(); // Проверка Assert.IsNotNull(users, "Список пользователей не должен быть равен null"); Assert.AreEqual(3, users.Count, "В списке должно быть три пользователя"); Assert.AreEqual("John", users[0].FirstName, "Первый пользователь должен быть John"); Assert.AreEqual("Jane", users[1].FirstName, "Второй пользователь должен быть Jane"); Assert.AreEqual("Alice", users[2].FirstName, "Третий пользователь должен быть Alice"); } [TestMethod] public async Task GetAllUsers_ReturnsAllUsersCount() { var users = await _userService.GetAllUsersAsync(); Assert.IsNotNull(users); Assert.AreEqual(3, users.Count); } } [TestClass] public class ClothingTypeServiceTests { private ClothingTypeService _clothingTypeService; private TestClothingTypeDatabaseClient _testClient; [TestInitialize] public void Setup() { _testClient = new TestClothingTypeDatabaseClient(); _clothingTypeService = new ClothingTypeService(_testClient); } [TestMethod] public async Task GetClothingTypeByIdAsync_ValidId_ReturnsClothingType() { // Подготовка var existingClothingTypes = await _testClient.GetAllClothingTypes(); var clothingTypeId = existingClothingTypes.First().Id; // Получаем ID первого типа одежды // Действие var clothingType = await _clothingTypeService.GetClothingTypeByIdAsync(clothingTypeId); // Проверка Assert.IsNotNull(clothingType, "Тип одежды не должен быть равен null"); Assert.AreEqual(clothingTypeId, clothingType.Id, "ID типа одежды должен соответствовать запрашиваемому ID"); Assert.AreEqual("Футболка", clothingType.Name, "Название типа одежды должно быть Футболка"); } [TestMethod] public async Task GetClothingTypeByIdAsync_InvalidId_ReturnsNull() { // Подготовка var invalidClothingTypeId = Guid.NewGuid(); // Генерируем случайный ID // Действие var clothingType = await _clothingTypeService.GetClothingTypeByIdAsync(invalidClothingTypeId); // Проверка Assert.IsNull(clothingType, "Тип одежды должен быть равен null для недействительного ID"); } [TestMethod] public async Task GetAllClothingTypesAsync_ReturnsAllClothingTypes() { // Действие var clothingTypes = await _clothingTypeService.GetAllClothingTypesAsync(); // Проверка Assert.IsNotNull(clothingTypes, "Список типов одежды не должен быть равен null"); Assert.AreEqual(3, clothingTypes.Count, "В списке должно быть три типа одежды"); Assert.AreEqual("Футболка", clothingTypes[0].Name, "Первый тип одежды должен быть Футболка"); Assert.AreEqual("Кофта", clothingTypes[1].Name, "Второй тип одежды должен быть Кофта"); Assert.AreEqual("Джинсы", clothingTypes[2].Name, "Третий тип одежды должен быть Джинсы"); } } [TestClass] public class ReadyMadeClothingServiceTests { private ReadyMadeClothingService _readyMadeClothingService; private TestReadyMadeClothingDatabaseClient _testClient; [TestInitialize] public void Setup() { _testClient = new TestReadyMadeClothingDatabaseClient(); _readyMadeClothingService = new ReadyMadeClothingService(_testClient); } [TestMethod] public async Task GetReadyMadeClothingByIdAsync_ValidId_ReturnsReadyMadeClothing() { // Подготовка var existingClothingItems = await _testClient.GetAllReadyMadeClothing(); var clothingId = existingClothingItems.First().Id; // Получаем ID первого элемента // Действие var clothing = await _readyMadeClothingService.GetReadyMadeClothingByIdAsync(clothingId); // Проверка Assert.IsNotNull(clothing, "Элемент одежды не должен быть равен null"); Assert.AreEqual(clothingId, clothing.Id, "ID элемента одежды должен соответствовать запрашиваемому ID"); Assert.AreEqual("Классическая футболка", clothing.Name, "Название должно быть Классическая футболка"); } [TestMethod] public async Task GetReadyMadeClothingByIdAsync_InvalidId_ReturnsNull() { // Подготовка var invalidClothingId = Guid.NewGuid(); // Генерируем ID // Действие var clothing = await _readyMadeClothingService.GetReadyMadeClothingByIdAsync(invalidClothingId); // Проверка Assert.IsNull(clothing, "Элемент одежды должен быть равен null для недействительного ID"); } [TestMethod] public async Task GetAllReadyMadeClothingAsync_ReturnsAllReadyMadeClothing() { // Действие var clothingItems = await _readyMadeClothingService.GetAllReadyMadeClothingAsync(); // Проверка Assert.IsNotNull(clothingItems, "Список элементов одежды не должен быть равен null"); Assert.AreEqual(3, clothingItems.Count, "В списке должно быть три элемента одежды"); Assert.AreEqual("Классическая футболка", clothingItems[0].Name, "Первый элемент одежды должен быть Классическая футболка"); Assert.AreEqual("Спортивная кофта", clothingItems[1].Name, "Второй элемент одежды должен быть Спортивная кофта"); Assert.AreEqual("Летние джинсы", clothingItems[2].Name, "Третий элемент одежды должен быть Летние джинсы"); } } }