Open JohanLarsson opened 4 years ago
[Test]
public static void StaticEventHandlerOfPropertyChangedEventArgsInvoke()
{
var before = @"
namespace N
{
using System;
using System.ComponentModel;
public static class C
{
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
public static string ↓P { get; set; }
}
}";
var after = @"
namespace N
{
using System;
using System.ComponentModel;
public static class C
{
private static string p;
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
public static string P
{
get => p;
set
{
if (value == p)
{
return;
}
p = value;
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(nameof(P)));
}
}
}
}";
RoslynAssert.CodeFix(Analyzer, Fix, ExpectedDiagnostic, before, after);
}
[Test]
public static void StaticEventHandlerOfPropertyChangedEventArgsInvoker()
{
var before = @"
namespace N
{
using System;
using System.ComponentModel;
public static class C
{
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
public static string ↓P { get; set; }
private static void OnStaticPropertyChanged(string propertyName)
{
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
}
}
}";
var after = @"
namespace N
{
using System;
using System.ComponentModel;
public static class C
{
private static string p;
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
public static string P
{
get => p;
set
{
if (value == p)
{
return;
}
p = value;
OnStaticPropertyChanged(nameof(P));
}
}
private static void OnStaticPropertyChanged(string propertyName)
{
StaticPropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
}
}
}";
RoslynAssert.CodeFix(Analyzer, Fix, ExpectedDiagnostic, before, after);
}
[Test]
public static void StaticPropertyChangedEventHandlerInvoke()
{
var before = @"
namespace N
{
using System.ComponentModel;
public class C
{
public static event PropertyChangedEventHandler PropertyChanged;
public static string ↓P { get; set; }
}
}";
var after = @"
namespace N
{
using System.ComponentModel;
public class C
{
private static string p;
public static event PropertyChangedEventHandler PropertyChanged;
public static string P
{
get => p;
set
{
if (value == p)
{
return;
}
p = value;
PropertyChanged?.Invoke(null, new PropertyChangedEventArgs(nameof(P)));
}
}
}
}";
RoslynAssert.CodeFix(Analyzer, Fix, ExpectedDiagnostic, before, after);
}
[Test]
public static void StaticPropertyChangedEventHandlerInvoker()
{
var before = @"
namespace N
{
using System.ComponentModel;
public class C
{
public static event PropertyChangedEventHandler PropertyChanged;
public static string ↓P { get; set; }
private static void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
}
}
}";
var after = @"
namespace N
{
using System.ComponentModel;
public class C
{
private static string p;
public static event PropertyChangedEventHandler PropertyChanged;
public static string P
{
get => p;
set
{
if (value == p)
{
return;
}
p = value;
OnPropertyChanged(nameof(P));
}
}
private static void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(null, new PropertyChangedEventArgs(propertyName));
}
}
}";
RoslynAssert.CodeFix(Analyzer, Fix, ExpectedDiagnostic, before, after);
}
Not extremely useful as binding to static properties is rare.