Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@event != @event #1192

Open
kadamgreene opened this issue Nov 22, 2024 · 1 comment
Open

@event != @event #1192

kadamgreene opened this issue Nov 22, 2024 · 1 comment

Comments

@kadamgreene
Copy link

I'm not sure if this is a problem with the testing framework or the compiler itself...

I have the following code:

public class MyState
{
    public void Apply(MyEvent @event) { }
}

The CodeFixProvider generates the method. When I run the code through the CodeFixProvider testing framework. I get this error:

Test method AggregateGrainCodeFixProviderTests.TestCodeFixForMissingApplyMethod threw exception: 
System.InvalidOperationException: Context: Iterative code fix application
items not equal.  expected:'event' actual:'@event'

When I trace through the code, I eventually get to the CodeActionTest<TVerifier>.AssertTokensEqual and the expectedValue is SyntaxToken IdentifierToken @event and the actualValue is SyntaxToken IdentifierToken @event, but when I inspect expectedValue, Value is event, but when I inspect actualValue, Value is @event (but both have a Text value of @event).

@Youssef1313
Copy link
Member

I think the testing framework will assert that the syntax tree produced after applying the codefix being tested will exactly match what the compiler produces if it would parse the same text.

Hence, your codefix is expected to produce the SyntaxToken exactly as the compiler would parse the text. So I assume somewhere in your codefix, you'are creating a SyntaxToken for @event and the token doesn't exactly match what the compiler would have produced.

If you use CodeActionValidationMode.None, does it make your test pass? This is not to say you should use CodeActionValidationMode.None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants