UnitTest1.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using ConsoleAppForUniqWear;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace UnitTestProject4
  8. {
  9. [TestClass]
  10. public class UserServiceTests
  11. {
  12. private UserService _userService;
  13. private TestDatabaseClient _testClient;
  14. [TestInitialize]
  15. public void Setup()
  16. {
  17. _testClient = new TestDatabaseClient();
  18. _userService = new UserService(_testClient);
  19. }
  20. [TestMethod]
  21. public async Task GetUserByIdAsync_ValidId_ReturnsUser()
  22. {
  23. // Подготовка
  24. var existingUser = await _testClient.GetAllUsers();
  25. var userId = existingUser.First().Id; // Получаем ID первого пользователя
  26. // Действие
  27. var user = await _userService.GetUserByIdAsync(userId);
  28. // Проверка
  29. Assert.IsNotNull(user, "Пользователь не должен быть равен null");
  30. Assert.AreEqual(userId, user.Id, "ID пользователя должен соответствовать запрашиваемому ID");
  31. Assert.AreEqual("John", user.FirstName, "Имя должно быть John");
  32. }
  33. [TestMethod]
  34. public async Task GetUserByIdAsync_InvalidId_ReturnsNull()
  35. {
  36. // Подготовка
  37. var invalidUserId = Guid.NewGuid(); // Генерируем случайный ID
  38. // Действие
  39. var user = await _userService.GetUserByIdAsync(invalidUserId);
  40. // Проверка
  41. Assert.IsNull(user, "Пользователь должен быть равен null для недействительного ID");
  42. }
  43. [TestMethod]
  44. public async Task GetAllUsersAsync_ReturnsAllUsers()
  45. {
  46. // Действие
  47. var users = await _userService.GetAllUsersAsync();
  48. // Проверка
  49. Assert.IsNotNull(users, "Список пользователей не должен быть равен null");
  50. Assert.AreEqual(3, users.Count, "В списке должно быть три пользователя");
  51. Assert.AreEqual("John", users[0].FirstName, "Первый пользователь должен быть John");
  52. Assert.AreEqual("Jane", users[1].FirstName, "Второй пользователь должен быть Jane");
  53. Assert.AreEqual("Alice", users[2].FirstName, "Третий пользователь должен быть Alice");
  54. }
  55. [TestMethod]
  56. public async Task GetAllUsers_ReturnsAllUsersCount()
  57. {
  58. var users = await _userService.GetAllUsersAsync();
  59. Assert.IsNotNull(users);
  60. Assert.AreEqual(3, users.Count);
  61. }
  62. }
  63. [TestClass]
  64. public class ClothingTypeServiceTests
  65. {
  66. private ClothingTypeService _clothingTypeService;
  67. private TestClothingTypeDatabaseClient _testClient;
  68. [TestInitialize]
  69. public void Setup()
  70. {
  71. _testClient = new TestClothingTypeDatabaseClient();
  72. _clothingTypeService = new ClothingTypeService(_testClient);
  73. }
  74. [TestMethod]
  75. public async Task GetClothingTypeByIdAsync_ValidId_ReturnsClothingType()
  76. {
  77. // Подготовка
  78. var existingClothingTypes = await _testClient.GetAllClothingTypes();
  79. var clothingTypeId = existingClothingTypes.First().Id; // Получаем ID первого типа одежды
  80. // Действие
  81. var clothingType = await _clothingTypeService.GetClothingTypeByIdAsync(clothingTypeId);
  82. // Проверка
  83. Assert.IsNotNull(clothingType, "Тип одежды не должен быть равен null");
  84. Assert.AreEqual(clothingTypeId, clothingType.Id, "ID типа одежды должен соответствовать запрашиваемому ID");
  85. Assert.AreEqual("Футболка", clothingType.Name, "Название типа одежды должно быть Футболка");
  86. }
  87. [TestMethod]
  88. public async Task GetClothingTypeByIdAsync_InvalidId_ReturnsNull()
  89. {
  90. // Подготовка
  91. var invalidClothingTypeId = Guid.NewGuid(); // Генерируем случайный ID
  92. // Действие
  93. var clothingType = await _clothingTypeService.GetClothingTypeByIdAsync(invalidClothingTypeId);
  94. // Проверка
  95. Assert.IsNull(clothingType, "Тип одежды должен быть равен null для недействительного ID");
  96. }
  97. [TestMethod]
  98. public async Task GetAllClothingTypesAsync_ReturnsAllClothingTypes()
  99. {
  100. // Действие
  101. var clothingTypes = await _clothingTypeService.GetAllClothingTypesAsync();
  102. // Проверка
  103. Assert.IsNotNull(clothingTypes, "Список типов одежды не должен быть равен null");
  104. Assert.AreEqual(3, clothingTypes.Count, "В списке должно быть три типа одежды");
  105. Assert.AreEqual("Футболка", clothingTypes[0].Name, "Первый тип одежды должен быть Футболка");
  106. Assert.AreEqual("Кофта", clothingTypes[1].Name, "Второй тип одежды должен быть Кофта");
  107. Assert.AreEqual("Джинсы", clothingTypes[2].Name, "Третий тип одежды должен быть Джинсы");
  108. }
  109. }
  110. [TestClass]
  111. public class ReadyMadeClothingServiceTests
  112. {
  113. private ReadyMadeClothingService _readyMadeClothingService;
  114. private TestReadyMadeClothingDatabaseClient _testClient;
  115. [TestInitialize]
  116. public void Setup()
  117. {
  118. _testClient = new TestReadyMadeClothingDatabaseClient();
  119. _readyMadeClothingService = new ReadyMadeClothingService(_testClient);
  120. }
  121. [TestMethod]
  122. public async Task GetReadyMadeClothingByIdAsync_ValidId_ReturnsReadyMadeClothing()
  123. {
  124. // Подготовка
  125. var existingClothingItems = await _testClient.GetAllReadyMadeClothing();
  126. var clothingId = existingClothingItems.First().Id; // Получаем ID первого элемента
  127. // Действие
  128. var clothing = await _readyMadeClothingService.GetReadyMadeClothingByIdAsync(clothingId);
  129. // Проверка
  130. Assert.IsNotNull(clothing, "Элемент одежды не должен быть равен null");
  131. Assert.AreEqual(clothingId, clothing.Id, "ID элемента одежды должен соответствовать запрашиваемому ID");
  132. Assert.AreEqual("Классическая футболка", clothing.Name, "Название должно быть Классическая футболка");
  133. }
  134. [TestMethod]
  135. public async Task GetReadyMadeClothingByIdAsync_InvalidId_ReturnsNull()
  136. {
  137. // Подготовка
  138. var invalidClothingId = Guid.NewGuid(); // Генерируем ID
  139. // Действие
  140. var clothing = await _readyMadeClothingService.GetReadyMadeClothingByIdAsync(invalidClothingId);
  141. // Проверка
  142. Assert.IsNull(clothing, "Элемент одежды должен быть равен null для недействительного ID");
  143. }
  144. [TestMethod]
  145. public async Task GetAllReadyMadeClothingAsync_ReturnsAllReadyMadeClothing()
  146. {
  147. // Действие
  148. var clothingItems = await _readyMadeClothingService.GetAllReadyMadeClothingAsync();
  149. // Проверка
  150. Assert.IsNotNull(clothingItems, "Список элементов одежды не должен быть равен null");
  151. Assert.AreEqual(3, clothingItems.Count, "В списке должно быть три элемента одежды");
  152. Assert.AreEqual("Классическая футболка", clothingItems[0].Name, "Первый элемент одежды должен быть Классическая футболка");
  153. Assert.AreEqual("Спортивная кофта", clothingItems[1].Name, "Второй элемент одежды должен быть Спортивная кофта");
  154. Assert.AreEqual("Летние джинсы", clothingItems[2].Name, "Третий элемент одежды должен быть Летние джинсы");
  155. }
  156. }
  157. }