forked from resgroup/customer-tests-excel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
EqualityAssertionWithStringFormat.cs
31 lines (25 loc) · 1.01 KB
/
EqualityAssertionWithStringFormat.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
namespace CustomerTestsExcel
{
public class EqualityAssertionWithStringFormat<T> : BaseAssertion<T>
{
private readonly string _format;
public EqualityAssertionWithStringFormat(Expression<Func<T, object>> property, object expected, string format)
: base(property, expected)
{
_format = format;
}
protected override AssertionOperator Operator => AssertionOperator.Equality;
protected override bool InternalPassed(object actual)
{
if (actual == null) return Expected == null || Expected.ToString().Equals("null", StringComparison.InvariantCultureIgnoreCase);
return (string.Format("{0:" + _format + "}", actual) == string.Format("{0:" + _format + "}", Expected));
}
protected override IEnumerable<string> AssertionSpecifics()
=> new[] { "StringFormat", _format };
}
}