Example 2: Back to Basics

require 'test/unit/testcase'
require 'moo.mm.systemic.support/repository_table'
require 'moo.mm.systemic.support/menu_bar'

class TC_Systemic < Test::Unit::TestCase
	private
	def set_up
		@server = RpcServer.new 'localhost', 4444
		@table = RepositoryTable.new
		@menuBar = MenuBar.new
		@application = Application.new
	end
	
	private
	def addFile(description)
		@menuBar.clickItem('Mirrored File...')
		@application.enterValue("Description", description)
		@application.clickButton('OK')
	end

	public
	def testInitialState
		@table.assertRowCount(0)
		@table.assertColumns(["Mirrored Items", "Local Machine", "Local Machine 2"])
		@menuBar.assertItemDisabled('Delete...')
	end
	
	public
	def testAddMirroredFile
		@menuBar.clickItem('Mirrored File...')
		@application.assertValue("Description", "")
		@application.clickButton('Cancel')
		@table.assertRowCount(0)
		
		addFile("My Outlook File")
		@table.assertRowCount(1)
		@table.assertRowContent(1, "My Outlook File", "", "")
		@table.assertRowSelected(1)
		@application.assertValue("Description", "My Outlook File")
		@application.assertValue("Local Machine", "")
		@application.assertValue("Local Machine 2", "")
				
		addFile("My Resume")
		@table.assertRowCount(2)
		@table.assertRowContent(1, "My Outlook File", "", "")
		@table.assertRowContent(2, "My Resume", "", "")
		@table.assertRowSelected(2)
		@application.assertValue("Description", "My Resume")
		@application.assertValue("Local Machine", "")
		@application.assertValue("Local Machine 2", "")
	end
end