• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lucaslorentz / auto-compute / 20055595719

09 Dec 2025 07:34AM UTC coverage: 82.723%. Remained the same
20055595719

push

github

lucaslorentz
Complete some renames from ChangeCalculation to ChangeCalculator

28 of 29 new or added lines in 13 files covered. (96.55%)

4 existing lines in 1 file now uncovered.

1762 of 2130 relevant lines covered (82.72%)

859.29 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.48
/src/LLL.AutoCompute.EFCore/Internal/EFCoreObservedProperty.cs
1
using LLL.AutoCompute.EFCore.Metadata.Internal;
2
using Microsoft.EntityFrameworkCore;
3
using Microsoft.EntityFrameworkCore.ChangeTracking;
4
using Microsoft.EntityFrameworkCore.Metadata;
5

6
namespace LLL.AutoCompute.EFCore.Internal;
7

8
public class EFCoreObservedProperty(
140✔
9
    IProperty property)
140✔
10
    : EFCoreObservedMember, IObservedProperty
11
{
12
    public override IProperty Member => property;
14,054✔
13
    public override string Name => Member.Name;
×
UNCOV
14
    public virtual IObservedEntityType EntityType => ((IEntityType)Member.DeclaringType).GetOrCreateObservedEntityType();
×
15

16
    public override string ToDebugString()
17
    {
UNCOV
18
        return $"{Member.DeclaringType.ShortName()}.{Member.Name}";
×
19
    }
20

21
    protected override object? GetOriginalValue(ComputedInput input, object ent)
22
    {
23
        var dbContext = input.Get<DbContext>();
122✔
24

25
        var entityEntry = dbContext.Entry(ent!);
122✔
26

27
        if (entityEntry.State == EntityState.Added)
122✔
UNCOV
28
            throw new Exception($"Cannot access property '{Member.DeclaringType.ShortName()}.{Member.Name}' original value for an added entity");
×
29

30
        return entityEntry.Property(Member).OriginalValue;
122✔
31
    }
32

33
    protected override object? GetCurrentValue(ComputedInput input, object ent)
34
    {
35
        var dbContext = input.Get<DbContext>();
3,418✔
36

37
        var entityEntry = dbContext.Entry(ent!);
3,418✔
38

39
        if (entityEntry.State == EntityState.Deleted)
3,418✔
UNCOV
40
            throw new Exception($"Cannot access property '{Member.DeclaringType.ShortName()}.{Member.Name}' current value for a deleted entity");
×
41

42
        return entityEntry.Property(Member).CurrentValue;
3,418✔
43
    }
44

45
    public override async Task CollectChangesAsync(DbContext dbContext, EFCoreChangeset changes)
46
    {
47
        foreach (var entityEntry in dbContext.EntityEntriesOfType(Member.DeclaringType))
9,896✔
48
        {
49
            await CollectChangesAsync(entityEntry, changes);
3,078✔
50
        }
51
    }
52

53
    public override async Task CollectChangesAsync(EntityEntry entityEntry, EFCoreChangeset changes)
54
    {
55
        if (entityEntry.State == EntityState.Added
3,086✔
56
            || entityEntry.State == EntityState.Deleted
3,086✔
57
            || entityEntry.State == EntityState.Modified)
3,086✔
58
        {
59
            var propertyEntry = entityEntry.Property(Member);
2,720✔
60
            if (entityEntry.State == EntityState.Added
2,720✔
61
                || entityEntry.State == EntityState.Deleted
2,720✔
62
                || propertyEntry.IsModified)
2,720✔
63
            {
64
                changes.AddPropertyChange(Member, entityEntry.Entity);
2,584✔
65
            }
66
        }
67
    }
68

69
    public async Task<ObservedPropertyChanges> GetChangesAsync(ComputedInput input)
70
    {
71
        return input.Get<EFCoreChangeset>().GetOrCreatePropertyChanges(Member);
2,628✔
72
    }
73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc