mirror of
https://github.com/Biarity/Sieve.git
synced 2024-11-22 13:32:33 +01:00
44 lines
1.1 KiB
C#
44 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace SieveUnitTests.ValueObjects
|
|
{
|
|
public sealed class Name : IEquatable<Name>
|
|
{
|
|
public Name(string value)
|
|
{
|
|
if (string.IsNullOrEmpty(value))
|
|
{
|
|
throw new InvalidOperationException("Invalid string!");
|
|
}
|
|
|
|
if (value.Length > 50)
|
|
{
|
|
throw new InvalidOperationException("String exceeds maximum name length!");
|
|
}
|
|
|
|
Value = value;
|
|
}
|
|
|
|
public string Value { get; private set; }
|
|
|
|
public bool Equals(Name other)
|
|
{
|
|
if (ReferenceEquals(null, other)) return false;
|
|
if (ReferenceEquals(this, other)) return true;
|
|
return string.Equals(Value, other.Value);
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (ReferenceEquals(null, obj)) return false;
|
|
if (ReferenceEquals(this, obj)) return true;
|
|
return obj is Name && Equals((Name) obj);
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return (Value != null ? Value.GetHashCode() : 0);
|
|
}
|
|
}
|
|
}
|