How to unit test this method? I have this method inside a class that is responsible for setting up and executing a model:

public FlowJob PrepareAndScheduleFlowModelJob(string coordinates)
{
    GeometryCoordinateString coordinateString = 
        new GeometryCoordinateString(coordinates);
    DataSet intersectedWatershedsDataSet = 
        FindIntersectingWatersheds(coordinateString);
    List&lt;string&gt; xCoords = new List&lt;string&gt;();
    List&lt;string&gt; yCoords = new List&lt;string&gt;();
    List&lt;string&gt; ascFiles = new List&lt;string&gt;();
    string submitJobID = "fromServa" + new Random().Next().ToString();
    ProcessWatershedResults(intersectedWatershedsDataSet, xCoords, yCoords, ascFiles);
    ScheduleFlowJob(xCoords, yCoords, ascFiles, submitJobID);
    return new FlowJob(submitJobID);
}


It is a long running process so the client caller uses the FlowJob to poll status and get results.  The client itself doesn't care about any of the intermediate data and only wants to specify the input location for the model to run.  

Every method that is called inside this method have their own unit tests already to ensure those work properly.

I know I can write an integration test ensuring that the entire thing in fact works.

I don't see anything here to unit test except that various methods are called.  Any suggestions?
As far as testing the method itself:
In most testing frameworks, you would create parameterized tests that provide the inputs and expected outputs.

NUnit example below (omitting setup code to build ObjectUnderTest):

[TestCaseSource ("GetPrepTestData")]
public void TestPrepareAndScheduleFlowJob (string inputCoords, FlowJob expectedJob)
{
   var  outputJob = ObjectUnderTest.PrepareAndScheduleFlowModelJob (inputCoords);
   Assert.That (outputJob, Is.EqualTo (expectedJob));
}

private static IEnumerable&lt;TestCaseData&gt; GetPrepTestData ()
{
   yield return new TestCaseData ("some coord string", new FlowJob (expectedId)).SetName ("first test");
   yield break;
}


The private method calls can largely be ignored unless they have external dependencies, in which case you should add some injection and mocking with your parent object.  This will allow you to ensure your private method calls inside PrepareAndScheduleFlowJob execute quickly and return expected results.

edit:
The above solution requires that you override Object.Equals.  You could change the assert to a set of asserts for testing equality, but Object.Equals overrides are preferable, as it will cover FlowJob and any future/current subclasses in addition to providing equality check capability to anyone using the class.  Additionally, in a framework like NUnit, overriding Object.ToString is highly recommended, as many test frameworks will call ToString when printing assert failures, and having something more than just the type name is useful when assessing why your tests may have failed.