public void Initiator_Method()
    {
      Assert.Throws<ArgumentNullException>(() => IDeputyRequestExtensions.Initiator<IDeputyRequest>(null, "initiator"));
      Assert.Throws<ArgumentNullException>(() => Enumerable.Empty<IDeputyRequest>().Initiator(null));
      Assert.Throws<ArgumentException>(() => Enumerable.Empty<IDeputyRequest>().Initiator(string.Empty));

      Assert.False(Enumerable.Empty<IDeputyRequest>().Initiator("initiator").Any());

      var first = new DeputyRequest { Initiator = "FIRST" };
      var second = new DeputyRequest { Initiator = "Second" };
      var requests = new[] { null, first, second };
      Assert.True(ReferenceEquals(first, requests.Initiator("first").Single()));
      Assert.True(ReferenceEquals(second, requests.Initiator("second").Single()));
    }
    public void SignDate_Method()
    {
      Assert.Throws<ArgumentNullException>(() => IDeputyRequestExtensions.SignDate<IDeputyRequest>(null));

      var date = new DateTime(2000, 1, 1);

      var first = new DeputyRequest { SignDate = DateTime.MinValue };
      var second = new DeputyRequest { SignDate = date };
      var third = new DeputyRequest { SignDate = DateTime.MaxValue };

      var requests = new[] { null, first, second, third };
      Assert.True(requests.SignDate(date).SequenceEqual(new[] { first, second }));
      Assert.True(requests.SignDate(null, date).SequenceEqual(new[] { first, second }));
      Assert.True(requests.SignDate(DateTime.MinValue, DateTime.MaxValue).SequenceEqual(new[] { first, second, third }));
    }