public void Should_return_error_when_domain_exists()
        {
            _mockCommerceRepository.Setup(x => x.NameExists(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(false);
            _mockCommerceRepository.Setup(x => x.DomainExists(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(true);

            var handler = new UpdateCommerceHandler(_mockCommerceRepository.Object);

            var command = new UpdateCommerceCommand
            {
                Id         = Guid.NewGuid(),
                Name       = "Test Name",
                SiteDomain = "test.com",
                Country    = "Brasil",
                State      = "São Paulo",
                City       = "São Paulo"
            };

            var result = handler.Handle(command);

            Assert.False(handler.Valid);
            Assert.False(result.Success);
            Assert.Contains(handler.Notifications, x => x.Property == "Domain");
        }
        public void Should_return_success()
        {
            var commerceMock = new Mock <Commerce>("name", new Mock <Site>().Object, new Mock <Address>().Object);

            _mockCommerceRepository.Setup(x => x.NameExists(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(false);
            _mockCommerceRepository.Setup(x => x.DomainExists(It.IsAny <string>(), It.IsAny <Guid>()))
            .Returns(false);
            _mockCommerceRepository.Setup(x => x.GetById(It.IsAny <Guid>()))
            .Returns(commerceMock.Object);

            var handler = new UpdateCommerceHandler(_mockCommerceRepository.Object);

            var command = new UpdateCommerceCommand
            {
                Id         = Guid.NewGuid(),
                Name       = "Test Name",
                SiteDomain = "test.com",
                Country    = "Brasil",
                State      = "São Paulo",
                City       = "São Paulo"
            };

            var result = handler.Handle(command);

            Assert.True(result.Success, result.Message);
            Assert.True(handler.Valid);
        }
        public void Should_return_error_when_command_is_invalid()
        {
            var handler = new UpdateCommerceHandler(_mockCommerceRepository.Object);

            var command = new UpdateCommerceCommand();

            var result = handler.Handle(command);

            Assert.False(command.Valid);
            Assert.False(handler.Valid);
            Assert.False(result.Success);
        }