Esempio n. 1
0
        public void Insert_UnexpectedErrorOccur_ErrorReturned()
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(2).ToList();

            this.InitializeStorage(_factory, 1);
            TModel newObj = data.ElementAt(0);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);

            // Act
            var res = repo.Insert(this.ConvertToInvalidInput(newObj));

            // Assert
            EAssert.IsLeft(res);
        }
Esempio n. 2
0
        public void Insert_ObjectAdded_IdBecomesPositiveAfterSave(int count)
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(count + 1).ToList();

            this.InitializeStorage(_factory, count);
            TModel newObj = data.ElementAt(count);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);

            // Act
            var insertedId = repo.Insert(this.ConvertToInput(newObj));

            // Assert
            EAssert.IsRight(insertedId);
            Assert.True(this.GetId(insertedId) > 0);
        }
Esempio n. 3
0
        public void Update_UnExistingObjectUpdate_ErrorReturned()
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(4).ToList();

            this.InitializeStorage(_factory, 0);
            TModel updateObject = data.ElementAt(3);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);

            // Act
            var result = repo.Update(this.GetUnExistingId(), this.ConvertToUpdate(updateObject));

            // Assert
            EAssert.IsLeft(result);
            Assert.Equal(typeof(RecordNotFound), result.LeftContent().GetType());
        }
Esempio n. 4
0
        public void Delete_InsertThenDelete_DeleteWasSuccessfulExecutedReturnedTrue(int initialCount)
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(initialCount + 1).ToList();

            this.InitializeStorage(_factory, initialCount);
            TModel newObj = data.ElementAt(initialCount);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);
            var insertedRecordId = repo.Insert(this.ConvertToInput(newObj));

            // Act
            var result = repo.Delete(insertedRecordId.RightContent());

            // Assert
            EAssert.IsRight(result);
            Assert.True(result.RightContent());
        }
Esempio n. 5
0
        public void Update_InvalidUpdateObject_ArgumentNotSetErrorReturned()
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(2).ToList();

            this.InitializeStorage(_factory, 0);
            TModel insertObject = data.ElementAt(1);
            TModel updateObject = data.ElementAt(1);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);
            var insertedRecordId = repo.Insert(this.ConvertToInput(insertObject));

            // Act
            var result = repo.Update(insertedRecordId.RightContent(), this.ConvertToInvalidUpdate(updateObject));

            // Assert
            EAssert.IsLeft(result);
            Assert.Equal(typeof(ArgumentNotSet), result.LeftContent().GetType());
        }
Esempio n. 6
0
        public void Update_ExistingObjectModified_UpdateDoneSuccessfullTrueReturned(int storageCount, int targetIndex)
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(storageCount + 1).ToList();

            this.InitializeStorage(_factory, storageCount);
            TModel insertObject = data.ElementAt(storageCount);
            TModel updateObject = data.ElementAt(targetIndex + 1);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);
            var insertedRecordId = repo.Insert(this.ConvertToInput(insertObject));

            // Act
            var result = repo.Update(insertedRecordId.RightContent(), this.ConvertToUpdate(updateObject));

            // Assert
            EAssert.IsRight(result);
            Assert.True(result.RightContent());
        }
Esempio n. 7
0
        public void Delete_DeleteAlreadyDeletedRecord_RecordIsNotDeletedFalseReturned()
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(1).ToList();

            this.InitializeStorage(_factory, 0);
            TModel newObj = data.ElementAt(0);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);
            var insertedRecordId = repo.Insert(this.ConvertToInput(newObj));

            repo.Delete(insertedRecordId.RightContent());

            // Act
            var result = repo.Delete(insertedRecordId.RightContent());

            // Assert
            EAssert.IsLeft(result);
            Assert.Equal(typeof(RecordNotFound), result.LeftContent().GetType());
        }
Esempio n. 8
0
        public void Delete_UnExpectedErrorOccurs_ErrorReturned()
        {
            // Arrange
            IEnumerable <TModel> data = this.SampleData.Take(2).ToList();

            this.InitializeStorage(_factory, 0);
            TModel insertObject = data.ElementAt(1);

            IDatabaseCommandRepository <TId, TInput, TUpdate> repo = this.CreateSut(_factory);
            var insertedRecordId = repo.Insert(this.ConvertToInput(insertObject));

            // this should make update to throw unexpected error
            _connection.Close();

            // Act
            var result = repo.Delete(insertedRecordId.RightContent());

            // Assert
            EAssert.IsLeft(result);
            Assert.Equal(typeof(UnknownError), result.LeftContent().GetType());
        }