public void GetTenantForPropertyReturnsOkAndSingleTenant()
        {
            // Arrange
            var tenantId   = new Guid();
            var propertyId = new Guid();
            var fakeTenant = new Faker <Tenant>()
                             .RuleFor(t => t.Id, t => tenantId);
            var tenantList = new List <Tenant>();

            tenantList.Add(fakeTenant);
            var mockRepository = new Mock <IPropertyRepository>();

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

            var sut = new TenantsController(mockRepository.Object);

            // Act
            var result = sut.GetTenantForProperty(propertyId, tenantId) as OkObjectResult;

            // Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.StatusCode, Is.EqualTo(200));
            Assert.That(result.Value, Is.TypeOf <TenantDto>());
            mockRepository.Verify(r => r.GetTenantsForProperty(propertyId), Times.Once);
        }
        public void GetTenantForPropertyReturnsNotFoundIfPropertyDoesNotExist()
        {
            // Arrange
            var propertyId     = new Guid();
            var tenantId       = 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.GetTenantForProperty(propertyId, tenantId) 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);
        }