<?xml version="1.0" encoding="UTF-8"?>
<testcases version="1.0" tds_version="1.1 Rev1.27" timestamp="08-15-2005">
	<!-- Test Header/Scheme Type -->
	<testcase type="USDOD-96" name="ValidSchemeType" desc="Validate if the header corresponds to a defined coding scheme">
		<input value="001011110001001000000011001001010011001100010011100100110100000000000000000000000000000000000001" 
		filter="1" companyprefixlength="1" outputlevel="LEGACY"/>
		<output value="cageordodaac=2S194"/>
		<test-parameter name="schemeType" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Output Levels -->
	<testcase type="USDOD-96" name="ValidBinaryOutput" desc="Validate binary output format">
		<input value="2S194" 
		filter="1"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110001001000000011001001010011001100010011100100110100000000000000000000000000000000000001"/>
		<test-parameter name="binary_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidTagURIOutput" desc="Validate tag URI output format">
		<input value="2S194" 
		filter="1" companyprefixlength="1" outputlevel="TAG_ENCODING"/>
		<output value="urn:epc:tag:usdod-96:1.2S194.1"/>
		<test-parameter name="taguri_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidPureIdentityOutput" desc="Validate pure identity output format">
		<input value="2S194" 
		filter="1"  companyprefixlength="1" outputlevel="PURE_IDENTITY"/>
		<output value="urn:epc:id:usdod:2S194.1"/>
		<test-parameter name="pureidentity_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidLength" desc="Validate if the length is valid">
		<input value="001011110001001000000011001001010011001100010011100100110100000000000000000000000000000000000001" 
		filter="1"  companyprefixlength="1" outputlevel="LEGACY"/>
		<output value="cageordodaac=2S194"/>
		<test-parameter name="length" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test Filter Values -->
	<testcase type="USDOD-96" name="ValidFilter-0" desc="Validate Filter Value">
		<input value="2S194" 
		filter="0"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110000001000000011001001010011001100010011100100110100000000000000000000000000000000000001"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidFilter-1" desc="Validate Filter Value">
		<input value="2S194" 
		filter="2"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110010001000000011001001010011001100010011100100110100000000000000000000000000000000000001"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidFilter-2" desc="Validate Filter Value">
		<input value="2S194" 
		filter="3"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110011001000000011001001010011001100010011100100110100000000000000000000000000000000000001"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test CompanyPrefix Length -->
	<testcase type="USDOD-96" name="ValidCompanyPrefix-1" desc="Validate CompanyPrefix">
		<input value="2S194" 
		filter="1"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110001001000000011001001010011001100010011100100110100000000000000000000000000000000000001"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Serial Number -->
	<testcase type="USDOD-96" name="ValidMinSerial" desc="Validate minimum serial number value allowed">
		<input value="2S194" 
		filter="1" serial="0" companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110001001000000011001001010011001100010011100100110100000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="USDOD-96" name="ValidMaxSerial" desc="Validate maximum serial number value allowed">
		<input value="2S194" 
		filter="1" serial="68719476735" companyprefixlength="1" outputlevel="BINARY"/>
		<output value="001011110001001000000011001001010011001100010011100100110100111111111111111111111111111111111111"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
			
	<!-- Invalid Test Scenarios -->
	<testcase type="USDOD-96" name="InvalidSchemeType" desc="Validate if the header corresponds to a defined coding scheme"">
		<input value="111111110001001000000011001001010011001100010011100100110100000000000000000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="" />
		<test-parameter name="schemeType" status="FAILED" errorMsg="Header value 11111111 is not currently defined in EPC Tag Data Standards"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidMaxCompanyPrefixLength" desc="Validate max. company prefix length">
		<input value="2S194" 
		filter="1"  companyprefixlength="2" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="maxcompanyprefixlength" status="FAILED" errorMsg="Company Prefix length cannot be less than 1"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidLength" desc="Validate if the length is valid">
		<input value="2S1945" 
		filter="" outputlevel="LEGACY"/>
		<output value="" />
		<test-parameter name="length" status="FAILED" errorMsg="Invalid DOD value. Cannot be greater than 5 digits long"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidMinSerial" desc="Validate minimum serial number value allowed">
		<input value="2S194" 
		filter="2" serial="-1" companyprefixlength="1" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="serial" status="FAILED" errorMsg="Minimum serial number value cannot be less than 0"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidMaxSerial" desc="Validate maximum serial number value allowed">
		<input value="2S194" 
		filter="2" serial="68719476736" companyprefixlength="1" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="serial" status="FAILED" errorMsg="Maximum serial number value cannot be less than 0"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidFilter" desc="Validate filter value">
		<input value="2S194" 
		filter="4"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Filter value cannot be greater than 1"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidCode-1" desc="Validate CAGEDOD value">
		<input value="2I194" 
		filter="1"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Invalid character in code"/>
	</testcase>
	<testcase type="USDOD-96" name="InvalidCode-1" desc="Validate CAGEDOD value">
		<input value="2O194" 
		filter="1"  companyprefixlength="1" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Invalid character in code"/>
	</testcase>
</testcases>