I have two Data Service EnquiryType and EnquirySource the Common Step between them is when I try to assert the response for both in there feature files, currently I am distinguishing the Scenario Step with the Data Service name, but I want to separate out the assertion step and use that for both Data Service.
Current Logic
/// <summary>
/// The step that gets all of the enquiry types.
/// </summary>
/// <returns></returns>
[Given(@"I request all enquiry types")]
public async Task RequestAllEnquiryTypes()
{
try
{
var results = await EnquiryTypesApi.GetEnquiryTypes(enquiryTypeData);
enquiryTypes = new List<EnquiryTypeModel>(results.Results);
FeatureSteps.statusCode = results.StatusCode;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
/// <summary>
/// Makes sure that the retrieved enquiries types match the expected data.
/// </summary>
/// <param name="data">The expected enquiry type data.</param>
[Then("The following Enquiry Type result is returned:")]
public void ThenTheFollowingResultIsReturned(TechTalk.SpecFlow.Table data)
{
data.CompareToSet<EnquiryTypeModel>(enquiryTypes);
}
/// <summary>
/// The step that gets all of the enquiry sources.
/// </summary>
/// <returns></returns>
[Given(@"I request all enquiry sources")]
public async Task RequestAllEnquirySources()
{
try
{
var results = await EnquirySourcesApi.GetEnquirySources(enquirySourceData);
enquirySources = new List<EnquirySourceModel>(results.Results);
FeatureSteps.statusCode = results.StatusCode;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
/// <summary>
/// Makes sure that the retrieved enquiries sources match the expected data.
/// </summary>
/// <param name="data">The expected enquiry source data.</param>
[Then("The following Enquiry Source result is returned:")]
public void ThenTheFollowingResultIsReturned(TechTalk.SpecFlow.Table data)
{
data.CompareToSet<EnquirySourceModel>(enquirySources);
}
What I want to achieve
/// <summary>
/// Makes sure that the Result match the expected data.
/// </summary>
/// <param name="data">The expected data.</param>
[Then("The following result is returned:")]
public void ThenTheFollowingResultIsReturned(TechTalk.SpecFlow.Table data)
{
data.CompareToSet(dynamicObject);
}