Skip to content

Commit a08c3eb

Browse files
committed
Merge: Autoincrement when setting a KeyColumn
1 parent a337abd commit a08c3eb

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

Simple.Data.InMemoryTest/InMemoryTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,22 @@ public void AutoIncrementShouldReturnNextIdInSequenceWhenOneRowExsists()
350350
Assert.AreEqual(2, newId);
351351
}
352352

353+
[Test]
354+
public void ShouldBeAbleToSetAutoIncrementWhenSettingKeyColumn()
355+
{
356+
// Arrange
357+
var adapter = new InMemoryAdapter();
358+
359+
// Act
360+
adapter.SetKeyColumn("Users", "Id", true);
361+
362+
// Assert
363+
Database.UseMockAdapter(adapter);
364+
var db = Database.Open();
365+
var firstId = db.Users.Insert(Name: "Marcus").Id;
366+
Assert.AreEqual(1, firstId);
367+
}
368+
353369
[Test]
354370
public void SelectCountShouldReturnCount()
355371
{

Simple.Data/InMemoryAdapter.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,11 @@ public void SetAutoIncrementColumn(string tableName, string columnName)
188188
_autoIncrementColumns.Add(tableName, columnName);
189189
}
190190

191-
public void SetKeyColumn(string tableName, string columnName)
191+
public void SetKeyColumn(string tableName, string columnName, bool autoIncremented = false)
192192
{
193193
_keyColumns[tableName] = new[] {columnName};
194+
if (autoIncremented)
195+
SetAutoIncrementColumn(tableName, columnName);
194196
}
195197

196198
public void SetKeyColumns(string tableName, params string[] columnNames)

0 commit comments

Comments
 (0)