public void ShouldUpdateRecord()
        {
            Guid   entityId         = Guid.NewGuid();
            int    newIntFieldValue = 15;
            string expectedSqlQuery = $"UPDATE [{TestedTableName}] SET [IntField] = @P1, [ModifiedOn] = @P2 WHERE [Id] = @P3";

            IDictionary <string, object> newValues = new Dictionary <string, object>()
            {
                { "IntField", newIntFieldValue }
            };
            IEnumerable <KeyValuePair <string, object> > expectedArguments = new[] {
                new KeyValuePair <string, object>("@P1", newIntFieldValue),
                new KeyValuePair <string, object>("@P2", DateTime.UtcNow),
                new KeyValuePair <string, object>("@P3", entityId),
            };

            TestedAffectedRowsCount = 10;

            TestedService.Update(entityId, newValues);
            var lastCommand = LastCommand;


            Assert.NotNull(lastCommand);
            Assert.Equal(expectedSqlQuery, lastCommand.Value.Key);
            Assert.NotNull(lastCommand.Value.Value);
            AssertArguments(expectedArguments, lastCommand.Value.Value);
        }
示例#2
0
        public void ShouldThrowArgumentNullExceptionWhenUpdateWithEmptyMessage()
        {
            UpdateCommentModel model = new() { Message = string.Empty };

            var exception =
                Record.Exception(
                    () => TestedService.Update(model)
                    );

            Assert.NotNull(exception);
            Assert.IsType <ArgumentNullException>(exception);
        }
        public void ShouldNotExecuteSqlCommandWhenEntityValuesContainsDefaultValues()
        {
            Guid entityId = Guid.NewGuid();
            IDictionary <string, object> newValues = new Dictionary <string, object>()
            {
                { "IntField", 0 }
            };

            TestedService.Update(entityId, newValues);
            var lastCommand = LastCommand;

            Assert.Null(lastCommand);
        }
        public void ShouldNotExecuteSqlCommandWhenEntityValuesContainsFieldsNotPresentedInEntity()
        {
            Guid entityId = Guid.NewGuid();
            IDictionary <string, object> newValues = new Dictionary <string, object>()
            {
                { "TestedNotExistedPropeprty", DateTime.UtcNow }
            };

            TestedService.Update(entityId, newValues);
            var lastCommand = LastCommand;

            Assert.Null(lastCommand);
        }
        public void ShouldNotExecuteSqlCommandWhenEntityValuesContainsOnlyDefaultEntityFields()
        {
            Guid entityId = Guid.NewGuid();
            IDictionary <string, object> newValues = new Dictionary <string, object>()
            {
                { "CreatedOn", DateTime.UtcNow }
            };

            TestedService.Update(entityId, newValues);
            var lastCommand = LastCommand;

            Assert.Null(lastCommand);
        }
        public void ShouldThrowArgumentNullExceptionWhenEntityValuesIsEmpty()
        {
            Guid entityId = Guid.NewGuid();
            IDictionary <string, object> newValues = new Dictionary <string, object>();

            Exception exception =
                Record.Exception(
                    () => TestedService.Update(entityId, newValues)
                    );

            Assert.NotNull(exception);
            Assert.IsType <ArgumentNullException>(exception);
        }
        public void ShouldThrowExceptionWhenAffectedRowsIsZero()
        {
            string expectedExceptionMessage = "Update command performed with empty result, no record was updated.";
            Guid   entityId = Guid.NewGuid();
            IDictionary <string, object> newValues = new Dictionary <string, object>()
            {
                { "IntField", 10 }
            };

            TestedAffectedRowsCount = 0;

            Exception exception =
                Record.Exception(
                    () => TestedService.Update(entityId, newValues)
                    );

            Assert.NotNull(exception);
            Assert.Equal(expectedExceptionMessage, exception.Message);
        }