From e9405b5933627f68719256336d715724f18dd420 Mon Sep 17 00:00:00 2001 From: Koen Bekkenutte <2912652+kbekkenutte@users.noreply.github.com> Date: Sun, 12 Dec 2021 20:03:59 +0800 Subject: [PATCH] Added a functional test --- .../InheritedMembersTests.cs | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs diff --git a/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs new file mode 100644 index 0000000..8c18caa --- /dev/null +++ b/tests/EntityFrameworkCore.Projectables.FunctionalTests/InheritedMembersTests.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using EntityFrameworkCore.Projectables.FunctionalTests.Helpers; +using Microsoft.EntityFrameworkCore; +using VerifyXunit; +using Xunit; + +namespace EntityFrameworkCore.Projectables.FunctionalTests +{ + [UsesVerify] + public class InheritedMembersTests + { + public abstract class Animal + { + public int Id { get; set; } + public double AverageLifespan { get; set; } + public int Age { get; set; } + + [Projectable] + public double LifeProgression + => Age / AverageLifespan; + } + + public class Cat : Animal + { + public int MentalAge { get; set; } + + [Projectable] + public double MentalLifeProgression + => MentalAge / AverageLifespan; + + [Projectable] + public double ReservedAge + => base.Age; // base should not affect the generated outcome + } + + + [Fact] + public Task ProjectOverMethodTakingDbContext() + { + using var dbContext = new SampleDbContext(); + + var query = dbContext.Set() + .Select(x => new { x.LifeProgression, x.AverageLifespan }); + + return Verifier.Verify(query.ToQueryString()); + } + } +}