public async Task IsCatShared_Success_Test()
        {
            //Arrange
            SetUpMockRepositories(1, true, cat, user, catSharingCreateInDb);

            var service = new CatSharingService(
                mockCatSharingDatabase.Object,
                mockCatDatabase.Object,
                mockUserDatabase.Object,
                mockMapper.Object);

            //Action
            bool actualResult = await service.IsCatSharedWithUser(1, 1);

            var expectedResult = true;

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        public async Task Share_Success_Test()
        {
            //Arrange
            SetUpMockRepositories(1, true, cat, user, catSharingCreateInDb);

            var service = new CatSharingService(
                mockCatSharingDatabase.Object,
                mockCatDatabase.Object,
                mockUserDatabase.Object,
                mockMapper.Object);

            //Action
            ServiceResult <CatSharingModel> actualResult = await service.ShareAsync(catSharingCreate, 1);

            var expectedResult = new ServiceResult <CatSharingModel>(ServiceResultStatus.CatIsShared);

            //Assert
            Assert.AreEqual(expectedResult.Status, actualResult.Status);
        }
        public async Task Share_CatNotFound_Test()
        {
            //Arrange
            SetUpMockRepositories(1, true, null, user, catSharingCreateInDb);

            var service = new CatSharingService(
                mockCatSharingDatabase.Object,
                mockCatDatabase.Object,
                mockUserDatabase.Object,
                mockMapper.Object);

            //Action
            ServiceResult <CatSharingModel> actualResult = await service.ShareAsync(catSharingCreate, 1);

            var expectedResult = new ServiceResult <CatSharingModel>(ServiceResultStatus.ItemNotFound, "Cat is not found");

            //Assert
            Assert.AreEqual(expectedResult.Status, actualResult.Status);
            Assert.AreEqual(expectedResult.Message, actualResult.Message);
        }
        public async Task Share_UserCannotShare_Test()
        {
            //Arrange
            SetUpMockRepositories(1, true, cat, user, catSharingCreateInDb);

            var service = new CatSharingService(
                mockCatSharingDatabase.Object,
                mockCatDatabase.Object,
                mockUserDatabase.Object,
                mockMapper.Object);

            //Action
            ServiceResult <CatSharingModel> actualResult = await service.ShareAsync(catSharingCreate, 99);

            var expectedResult = new ServiceResult <CatSharingModel>(ServiceResultStatus.CantShareWithUser, "This user cannot share the cat");

            //Assert
            Assert.AreEqual(expectedResult.Status, actualResult.Status);
            Assert.AreEqual(expectedResult.Message, actualResult.Message);
        }