public virtual void Request(SpecificationRequest request) { ThrowArgumentExceptionIfArgIsNull(request, "request"); HandleRequest(request); if (SuccessorSpecified()) { successor.Request(request); } }
public override void HandleRequest(SpecificationRequest request) { Expression<Func<Changeset, bool>> expression = request.Specification.IsSatisfiedByExpression(); object value = GetValueFromExpressionBody(expression); if (expression.Body.ToString().Contains("Revision")) { var val = Convert.ToInt32(value); if (val < 1) { val = 1; } request.Query.RevisionFrom = new ChangesetVersionSpec(val); request.Query.RevisionTo = VersionSpec.Latest; } if (expression.Body.ToString().Contains("Username")) { var val = Convert.ToString(value); request.Query.Author.Username = val; } if (expression.Body.ToString().Contains("Amount")) { var val = Convert.ToInt32(value); request.Query.MaxRevisions = val; } }
public abstract void HandleRequest(SpecificationRequest request);
public void Assure_can_handle_revision_numbers_less_than_one() { QueryModel queryModel = null; RevisionHandler revisionHandler = null; SpecificationRequest specificationRequest = null; Scenario.StartNew(this, scenario => { scenario.Given("a query model and revision handler exist", () => { queryModel = new QueryModel(); revisionHandler = new RevisionHandler(); specificationRequest = new SpecificationRequest(new ChangesetsAfterRevisionSpecification(0), queryModel); }); scenario.When("all changesets are requested, including revision zero (domain-specific)",() => { revisionHandler.HandleRequest(specificationRequest); }); scenario.Then("the query model should request changsets from revision 1 and up", () => { queryModel.RevisionFrom.ChangesetId.ShouldBe(1); }); }); }