fix(configdb): GetInstanceBy{Id,UniqueName}Async include NativeAlarmSourceOverrides (#226)
This commit is contained in:
+2
@@ -198,6 +198,7 @@ public class DeploymentManagerRepository : IDeploymentManagerRepository
|
|||||||
.Include(i => i.AttributeOverrides)
|
.Include(i => i.AttributeOverrides)
|
||||||
.Include(i => i.AlarmOverrides)
|
.Include(i => i.AlarmOverrides)
|
||||||
.Include(i => i.ConnectionBindings)
|
.Include(i => i.ConnectionBindings)
|
||||||
|
.Include(i => i.NativeAlarmSourceOverrides)
|
||||||
.AsSplitQuery()
|
.AsSplitQuery()
|
||||||
.FirstOrDefaultAsync(i => i.Id == instanceId, cancellationToken);
|
.FirstOrDefaultAsync(i => i.Id == instanceId, cancellationToken);
|
||||||
}
|
}
|
||||||
@@ -209,6 +210,7 @@ public class DeploymentManagerRepository : IDeploymentManagerRepository
|
|||||||
.Include(i => i.AttributeOverrides)
|
.Include(i => i.AttributeOverrides)
|
||||||
.Include(i => i.AlarmOverrides)
|
.Include(i => i.AlarmOverrides)
|
||||||
.Include(i => i.ConnectionBindings)
|
.Include(i => i.ConnectionBindings)
|
||||||
|
.Include(i => i.NativeAlarmSourceOverrides)
|
||||||
.AsSplitQuery()
|
.AsSplitQuery()
|
||||||
.FirstOrDefaultAsync(i => i.UniqueName == uniqueName, cancellationToken);
|
.FirstOrDefaultAsync(i => i.UniqueName == uniqueName, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -972,6 +972,40 @@ public class DeploymentManagerRepositoryTests : IDisposable
|
|||||||
Assert.Empty(await _repository.GetDeploymentsByInstanceIdAsync(instance.Id));
|
Assert.Empty(await _repository.GetDeploymentsByInstanceIdAsync(instance.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task GetInstanceByIdAsync_IncludesNativeAlarmSourceOverrides()
|
||||||
|
{
|
||||||
|
// Regression for #226: NativeAlarmSourceOverrides was omitted from the Include chain.
|
||||||
|
var instance = await SeedInstanceAsync();
|
||||||
|
instance.NativeAlarmSourceOverrides.Add(
|
||||||
|
new InstanceNativeAlarmSourceOverride("src/AlarmA") { InstanceId = instance.Id });
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
_context.ChangeTracker.Clear();
|
||||||
|
|
||||||
|
var loaded = await _repository.GetInstanceByIdAsync(instance.Id);
|
||||||
|
|
||||||
|
Assert.NotNull(loaded);
|
||||||
|
Assert.Single(loaded!.NativeAlarmSourceOverrides);
|
||||||
|
Assert.Equal("src/AlarmA", loaded.NativeAlarmSourceOverrides.First().SourceCanonicalName);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task GetInstanceByUniqueNameAsync_IncludesNativeAlarmSourceOverrides()
|
||||||
|
{
|
||||||
|
// Regression for #226: NativeAlarmSourceOverrides was omitted from the Include chain.
|
||||||
|
var instance = await SeedInstanceAsync();
|
||||||
|
instance.NativeAlarmSourceOverrides.Add(
|
||||||
|
new InstanceNativeAlarmSourceOverride("src/AlarmB") { InstanceId = instance.Id });
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
_context.ChangeTracker.Clear();
|
||||||
|
|
||||||
|
var loaded = await _repository.GetInstanceByUniqueNameAsync(instance.UniqueName);
|
||||||
|
|
||||||
|
Assert.NotNull(loaded);
|
||||||
|
Assert.Single(loaded!.NativeAlarmSourceOverrides);
|
||||||
|
Assert.Equal("src/AlarmB", loaded.NativeAlarmSourceOverrides.First().SourceCanonicalName);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Constructor_NullContext_Throws()
|
public void Constructor_NullContext_Throws()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user