96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package auratests.channels; | ||
|  | 
 | ||
|  | import utest.Assert; | ||
|  | 
 | ||
|  | import aura.Aura; | ||
|  | import aura.channels.MixChannel; | ||
|  | import aura.channels.UncompBufferResamplingChannel; | ||
|  | 
 | ||
|  | class TestBaseChannelHandle extends utest.Test { | ||
|  | 	var handle: BaseChannelHandle; | ||
|  | 	var channel: UncompBufferResamplingChannel; | ||
|  | 	var data = new kha.arrays.Float32Array(8); | ||
|  | 
 | ||
|  | 	function setup() { | ||
|  | 		channel = new UncompBufferResamplingChannel(data, false, 44100); | ||
|  | 		handle = new BaseChannelHandle(channel); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function teardown() {} | ||
|  | 
 | ||
|  | 	function test_setMixChannelAddsInputIfNotYetExisting() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function test_setMixChannelDoesntAddAlreadyExistingInput() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function test_setMixChannelNullRemovesInputIfExisting() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 		Assert.isTrue(handle1.setMixChannel(null)); | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(null)); | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function test_setMixChannelSwitchingMixChannelCorrectlyChangesInputs() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle3 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 		Assert.equals(0, handle3.getNumInputs()); | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 		Assert.equals(0, handle3.getNumInputs()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle3)); | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 		Assert.equals(1, handle3.getNumInputs()); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function test_setMixChannelSelfReferenceReturnsFalseAndRemovesInput() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.equals(1, handle2.getNumInputs()); | ||
|  | 
 | ||
|  | 		Assert.isFalse(handle1.setMixChannel(handle1)); | ||
|  | 		Assert.equals(0, handle2.getNumInputs()); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	function test_setMixChannelCircularDependencyReturnsFalseAndRemovesInput() { | ||
|  | 		final handle1 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle2 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle3 = new MixChannelHandle(new MixChannel()); | ||
|  | 		final handle4 = new MixChannelHandle(new MixChannel()); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle3.setMixChannel(handle4)); | ||
|  | 
 | ||
|  | 		Assert.isTrue(handle1.setMixChannel(handle2)); | ||
|  | 		Assert.isTrue(handle2.setMixChannel(handle3)); | ||
|  | 		Assert.isFalse(handle3.setMixChannel(handle1)); | ||
|  | 		Assert.equals(0, handle4.getNumInputs()); | ||
|  | 	} | ||
|  | } |