using BusinessLogic.Models.AccountReferenceValidator; using BusinessLogic.Models.Shared; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace BusinessLogic.UnitTests.Services.AccountReferenceValidator { [TestClass] [ExcludeFromCodeCoverage] public class SearchTests : BaseAccountReferenceValidatorTest { private void SetupUnitOfWork() { var test = 1; MockUnitOfWork.Setup(x => x.AccountReferenceValidators.Search(It.IsAny(), out test)) .Returns(new List() { new Entities.AccountReferenceValidator() { Id = 1, Name = "AccountReferenceValidator1", } } ); } private void SetupSecurityContext(bool result) { MockSecurityContext.Setup(x => x.IsInRole(It.IsAny())) .Returns(result); } [TestMethod] public void ReturnsCorrectType() { // Arrange SetupUnitOfWork(); var service = GetService(); // Act var result = service.Search(new SearchCriteria()); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(SearchResult)); } [TestMethod] public void ReturnsSameResultPage() { // Arrange SetupUnitOfWork(); var service = GetService(); // Act var result = service.Search(new SearchCriteria() { Page = 1 }); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(SearchResult)); Assert.AreEqual(result.Page, 1); } [TestMethod] public void ReturnsSameResultPageSize() { // Arrange SetupUnitOfWork(); var service = GetService(); // Act var result = service.Search(new SearchCriteria() { PageSize = 20 }); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(SearchResult)); Assert.AreEqual(result.PageSize, 20); } [TestMethod] public void OnErrorReturnsNull() { // Arrange SetupSecurityContext(true); var service = GetService(); // Act var result = service.Search(new SearchCriteria()); // Assert Assert.IsNull(result); } [TestMethod] public void IncorrectSecurityReturnsNull() { // Arrange SetupSecurityContext(false); var service = GetService(); // Act var result = service.Search(new SearchCriteria()); // Assert Assert.IsNull(result); } //[TestMethod] //public void CheckPermissions() //{ // // Arrange // var roles = new List() { Security.Role.SystemAdmin }; // var service = GetService(); // SetupUnitOfWork(); // var helper = new PermissionTestHelper( // MockSecurityContext, // roles, // () => { // // Act // var result = service.Search(new SearchCriteria()); // // Assert // Assert.IsNotNull(result); // Assert.IsInstanceOfType(result, typeof(SearchResult)); // }, // () => { // // Act // var result = service.Search(new SearchCriteria()); // // Assert // Assert.IsNull(result); // }); // // Act // helper.CheckRoles(); //} } }