Add better exceptions to Communications
Update TestBatch UnitTest

-No longer uses real file I/O
-Minor update to Functional TestBatch to make tests isolated