using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using PersonalFinance; using System.Collections.Generic; namespace PersonalFinanceTest { [TestClass] public class UserServiceTest { [TestMethod] public void UserService_GetAllUsers() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); var users = service.GetAllUsers(); Assert.AreEqual(5, users.Count); Assert.AreEqual("Tonda", users[0].Login); Assert.AreEqual("Ivetka", users[1].Login); Assert.AreEqual("Honzik", users[2].Login); Assert.AreEqual("Andy", users[3].Login); Assert.AreEqual("ESCRZYAIEUUescrzyaieuu", users[4].Login); } [TestMethod] public void UserService_FindUsers() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); var users = service.GetAllUsers(); var a = users.FindAll(q => q.Name.StartsWith("A")); Assert.AreEqual(2, a.Count, "Count of users with name start with A isn't right!"); var b = users.FindAll(q => q.Lastname.StartsWith("N")); Assert.AreEqual(3, b.Count, "Count of users with lastname start with N isn't right!"); var c = users.FindAll(q => q.Sex.Equals(Sex.Male)); Assert.AreEqual(3, c.Count, "Count of users with sex equals MALE isn't right!"); var d = users.FindAll(q => q.Name.StartsWith("Q")); Assert.AreEqual(0, d.Count, "Count of users with name start with Q isn't right!"); User t = service.GetUser(1); Assert.IsNotNull(t, "Cannot find this user!"); Assert.AreEqual("Tonda", t.Login); } [TestMethod] public void UserService_UpdateUser() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); var users = service.GetAllUsers(); users[2].Name = "Qido"; service.UpdateUser(users[2]); var a = users.FindAll(q => q.Name.StartsWith("Q")); Assert.AreEqual(1, a.Count, "Count of users with name start with Q isn't right!"); } [TestMethod] [ExpectedException(typeof(IndexOutOfRangeException), "User with ID was found!")] public void UserService_DeleteNonexistingUser() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); service.DeleteUser(99); } //Tato metoda opět vrací chybu "Operace výčtu nevrátila žádné výsledky" a context je prázdný => tj. zmizí, těsně předtím je... [TestMethod] public void UserService_DeleteUser() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); service.DeleteUser(userList[0]); var users = service.GetAllUsers(); Assert.AreEqual(4, users.Count); } //[TestMethod] public void UserService_CreateUser() { EntityContextInit contextInit = new EntityContextInit(); EntityContext context = new EntityContext(); List userList = contextInit.GetInitUserList(); context.Users = MoqContext.GetQueryableMockDbSet(userList.ToArray()); var service = new UserService(context); User u = new User() { UserId = 6, Login = "Karel", Name = "Karel", Lastname = "Vytvoril", Sex = Sex.Male }; service.AddUser(u); var users = service.GetAllUsers(); Assert.AreEqual(4, users.Count); } } }