public void Invoke_ValidData_ReturnsCorrectModel()
        {
            var domainFromDb = new DataAccess.Models.Domain
            {
                Id   = Guid.NewGuid(),
                Name = "Name"
            };

            // prepare
            var findByResult = new List <DataAccess.Models.Domain> {
                domainFromDb
            };
            var mockedDomainRepository = new Mock <IDomainRepository>();

            mockedDomainRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.Domain, bool> > >()))
            .Returns(findByResult.AsQueryable);
            var action = new CheckDomainExistsByName(mockedDomainRepository.Object);

            // action
            var domain = action.Invoke("Name");

            // check
            Assert.True(domain);
            mockedDomainRepository.Verify(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.Domain, bool> > >()), Times.Once);
        }
        public void Invoke_EmptyId_ReturnsNull()
        {
            // prepare
            var mockedDomainRepository = new Mock <IDomainRepository>();
            var action = new CheckDomainExistsByName(mockedDomainRepository.Object);

            // action
            var domain = action.Invoke("");

            // check
            Assert.False(domain);
            mockedDomainRepository.Verify(r => r.FindBy(It.IsAny <Expression <Func <DataAccess.Models.Domain, bool> > >()), Times.Never);
        }