public void GetTenantsForPropertyReturnsOkAndTenantDtoCollection()
        {
            // Arrange
            var propertyId  = new Guid();
            var fakeTenants = new List <Tenant>();

            fakeTenants.Add(
                new Faker <Tenant>()
                .RuleFor(t => t.Id, t => new Guid())
                .RuleFor(t => t.PropertyId, t => propertyId));

            var mockRepository = new Mock <IPropertyRepository>();

            mockRepository.Setup(r => r.PropertyExist(propertyId))
            .Returns(true);
            mockRepository.Setup(r => r.GetTenantsForProperty(propertyId))
            .Returns(fakeTenants);

            var sut = new TenantsController(mockRepository.Object);

            // Act
            var result = sut.GetTenantsForProperty(propertyId) as OkObjectResult;

            // Assert
            Assert.That(result, Is.TypeOf <OkObjectResult>());
            Assert.That(result.StatusCode, Is.EqualTo(200));
            Assert.That(result.Value, Is.TypeOf <List <TenantDto> >());
        }
        public void GetTenantsForPropertyReturnsNotFoundIdDoesNotExist()
        {
            // Arrange
            var propertyId     = new Guid();
            var mockRepository = new Mock <IPropertyRepository>();

            mockRepository.Setup(r => r.PropertyExist(propertyId))
            .Returns(false);

            var sut = new TenantsController(mockRepository.Object);

            // Act
            var result = sut.GetTenantsForProperty(propertyId) as NotFoundResult;

            // Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.TypeOf <NotFoundResult>());
            Assert.That(result.StatusCode, Is.EqualTo(404));
            mockRepository.Verify(m => m.PropertyExist(propertyId), Times.Once);
        }