Skip to content

Commit

Permalink
v2.2.0 Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
TylerBrinkley committed Jun 6, 2017
1 parent 24d55a4 commit 9b05d5e
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 38 deletions.
4 changes: 2 additions & 2 deletions Build/build.ps1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
properties {
$zipFileName = "Enums.NET.2.1.1.zip"
$zipFileName = "Enums.NET.2.2.0.zip"
$majorVersion = "2.0"
$majorWithReleaseVersion = "2.1.1"
$majorWithReleaseVersion = "2.2.0"
$nugetPrelease = $null
$version = GetVersion $majorWithReleaseVersion
$packageId = "Enums.NET"
Expand Down
64 changes: 30 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class EnumsNETDemo
{
NumericOperator value = member.Value;
string name = member.Name;
AttributeCollection attributes = member.Attributes;
// Do stuff
}
Assert.AreEqual(8, Enums.GetMembers<NumericOperator>().Count());
Expand All @@ -51,7 +52,7 @@ class EnumsNETDemo
Assert.IsTrue((DaysOfWeek.Sunday | DaysOfWeek.Wednesday).IsValid());
Assert.IsFalse((DaysOfWeek.Sunday | DaysOfWeek.Wednesday | ((DaysOfWeek)(-1))).IsValid());

// Custom validation through IEnumValidatorAttribute
// Custom validation through IEnumValidatorAttribute<TEnum>
Assert.IsTrue(DayType.Weekday.IsValid());
Assert.IsTrue((DayType.Weekday | DayType.Holiday).IsValid());
Assert.IsFalse((DayType.Weekday | DayType.Weekend).IsValid());
Expand All @@ -60,10 +61,6 @@ class EnumsNETDemo
[Test]
public void FlagEnumOperations()
{
// CombineFlags ~ bitwise OR
Assert.AreEqual(DaysOfWeek.Monday | DaysOfWeek.Wednesday, DaysOfWeek.Monday.CombineFlags(DaysOfWeek.Wednesday));
Assert.AreEqual(DaysOfWeek.Monday | DaysOfWeek.Wednesday | DaysOfWeek.Friday, FlagEnums.CombineFlags(DaysOfWeek.Monday, DaysOfWeek.Wednesday, DaysOfWeek.Friday));

// HasAnyFlags
Assert.IsTrue(DaysOfWeek.Monday.HasAnyFlags(DaysOfWeek.Monday | DaysOfWeek.Wednesday));
Assert.IsFalse((DaysOfWeek.Monday | DaysOfWeek.Wednesday).HasAnyFlags(DaysOfWeek.Friday));
Expand All @@ -72,6 +69,10 @@ class EnumsNETDemo
Assert.IsTrue((DaysOfWeek.Monday | DaysOfWeek.Wednesday | DaysOfWeek.Friday).HasAllFlags(DaysOfWeek.Monday | DaysOfWeek.Wednesday));
Assert.IsFalse(DaysOfWeek.Monday.HasAllFlags(DaysOfWeek.Monday | DaysOfWeek.Wednesday));

// CombineFlags ~ bitwise OR
Assert.AreEqual(DaysOfWeek.Monday | DaysOfWeek.Wednesday, DaysOfWeek.Monday.CombineFlags(DaysOfWeek.Wednesday));
Assert.AreEqual(DaysOfWeek.Monday | DaysOfWeek.Wednesday | DaysOfWeek.Friday, FlagEnums.CombineFlags(DaysOfWeek.Monday, DaysOfWeek.Wednesday, DaysOfWeek.Friday));

// CommonFlags ~ bitwise AND
Assert.AreEqual(DaysOfWeek.Monday, DaysOfWeek.Monday.CommonFlags(DaysOfWeek.Monday | DaysOfWeek.Wednesday));
Assert.AreEqual(DaysOfWeek.None, DaysOfWeek.Monday.CommonFlags(DaysOfWeek.Wednesday));
Expand All @@ -90,13 +91,6 @@ class EnumsNETDemo
Assert.AreEqual(DaysOfWeek.All, FlagEnums.GetAllFlags<DaysOfWeek>());
}

[Test]
public void Name()
{
Assert.AreEqual("Equals", NumericOperator.Equals.GetName());
Assert.IsNull(((NumericOperator)(-1)).GetName());
}

[Test]
public void Attributes()
{
Expand All @@ -117,6 +111,13 @@ class EnumsNETDemo
Assert.AreEqual(DaysOfWeek.Tuesday | DaysOfWeek.Thursday, FlagEnums.ParseFlags<DaysOfWeek>("Tuesday | Thursday", delimiter: "|"));
}

[Test]
public void Name()
{
Assert.AreEqual("Equals", NumericOperator.Equals.GetName());
Assert.IsNull(((NumericOperator)(-1)).GetName());
}

[Test]
public void Description()
{
Expand All @@ -136,26 +137,33 @@ class EnumsNETDemo

enum NumericOperator
{
[Description("Is")]
[Symbol("=")]
[Description("Is"), Symbol("=")]
Equals,
[Description("Is not")]
[Symbol("!=")]
[Description("Is not"), Symbol("!=")]
NotEquals,
[Symbol("<")]
LessThan,
[PrimaryEnumMember] // Indicates enum member as primary duplicate for extension methods
[Symbol(">=")]
[Symbol(">="), PrimaryEnumMember] // PrimaryEnumMember indicates enum member as primary duplicate for extension methods
GreaterThanOrEquals,
NotLessThan = GreaterThanOrEquals,
[Symbol(">")]
GreaterThan,
[PrimaryEnumMember]
[Symbol("<=")]
[Symbol("<="), PrimaryEnumMember]
LessThanOrEquals,
NotGreaterThan = LessThanOrEquals
}

[AttributeUsage(AttributeTargets.Field)]
class SymbolAttribute : Attribute
{
public string Symbol { get; }

public SymbolAttribute(string symbol)
{
Symbol = symbol;
}
}

[Flags]
enum DaysOfWeek
{
Expand All @@ -172,30 +180,18 @@ class EnumsNETDemo
All = Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday
}

[Flags]
[DayTypeValidator]
[Flags, DayTypeValidator]
enum DayType
{
Weekday = 1,
Weekend = 2,
Holiday = 4
}

[AttributeUsage(AttributeTargets.Field)]
class SymbolAttribute : Attribute
{
public string Symbol { get; }

public SymbolAttribute(string symbol)
{
Symbol = symbol;
}
}

[AttributeUsage(AttributeTargets.Enum)]
class DayTypeValidatorAttribute : Attribute, IEnumValidatorAttribute<DayType>
{
public bool IsValid(DayType value) => value == DayType.Weekday || value == DayType.Weekend || value == (DayType.Weekday | DayType.Holiday) || value == (DayType.Weekend | DayType.Holiday);
public bool IsValid(DayType value) => FlagEnums.IsValidFlagCombination(value) && !value.HasAllFlags(DayType.Weekday | DayType.Weekend);
}
}
```
Expand Down
7 changes: 5 additions & 2 deletions Src/Enums.NET/Enums.NET.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<PropertyGroup>
<TargetFrameworks>net45;net40;net35;net20;netstandard1.3;netstandard1.1;netstandard1.0</TargetFrameworks>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.1.1</FileVersion>
<VersionPrefix>2.1.1</VersionPrefix>
<FileVersion>2.2.0</FileVersion>
<VersionPrefix>2.2.0</VersionPrefix>
<VersionSufix></VersionSufix>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<Authors>Tyler Brinkley</Authors>
Expand All @@ -21,6 +21,9 @@
<AssemblyName>Enums.NET</AssemblyName>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
<SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign>
<AssemblyOriginatorKeyFile>C:\Development\Releases\enumsnet.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>

<ItemGroup>
Expand Down

0 comments on commit 9b05d5e

Please sign in to comment.