// Path: src/main/java/com/sonoport/freesound/response/AudioDescriptors.java
// public class AudioDescriptors {
// 
// 	/** Fixed length descriptors that take a single value (e.g. pitch). */
// 	private Set<String> fixedLengthOneDimensional;
// 
// 	/** Fixed length descriptors that take a multiple values (e.g. mfcc). */
// 	private Set<String> fixedLengthMultiDimensional;
// 
// 	/** Descriptors that have different values depending on the sound. */
// 	private Set<String> variableLength;
// 
// 	/**
// 	 * @return the fixedLengthOneDimensional
// 	 */
// 	public Set<String> getFixedLengthOneDimensional() {
// 		return fixedLengthOneDimensional;
// 	}
// 
// 	/**
// 	 * @param fixedLengthOneDimensional the fixedLengthOneDimensional to set
// 	 */
// 	public void setFixedLengthOneDimensional(final Set<String> fixedLengthOneDimensional) {
// 		this.fixedLengthOneDimensional = fixedLengthOneDimensional;
// 	}
// 
// 	/**
// 	 * @return the fixedLengthMultiDimensional
// 	 */
// 	public Set<String> getFixedLengthMultiDimensional() {
// 		return fixedLengthMultiDimensional;
// 	}
// 
// 	/**
// 	 * @param fixedLengthMultiDimensional the fixedLengthMultiDimensional to set
// 	 */
// 	public void setFixedLengthMultiDimensional(
// 			final Set<String> fixedLengthMultiDimensional) {
// 		this.fixedLengthMultiDimensional = fixedLengthMultiDimensional;
// 	}
// 
// 	/**
// 	 * @return the variableLength
// 	 */
// 	public Set<String> getVariableLength() {
// 		return variableLength;
// 	}
// 
// 	/**
// 	 * @param variableLength the variableLength to set
// 	 */
// 	public void setVariableLength(final Set<String> variableLength) {
// 		this.variableLength = variableLength;
// 	}
// }


import static org.junit.Assert.assertTrue;
import org.json.JSONObject;
import org.junit.Test;
import com.sonoport.freesound.response.AudioDescriptors;
/*
 * Copyright 2014 Sonoport (Asia) Pte Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.sonoport.freesound.response.mapping;




/**
 * Unit tests to ensure the correct operation of {@link AudioDescriptorsMapper}.
 *
 * Test data is located at <code>/src/test/resources/audio-descriptors.json</code>.
 */
public class AudioDescriptorsMapperTest extends MapperTest {

	/** Descriptor from test file. */
	private static final String ONE_DIMENSIONAL_DESCRIPTOR_1 = "lowlevel.average_loudness";

	/** Descriptor from test file. */
	private static final String ONE_DIMENSIONAL_DESCRIPTOR_2 = "lowlevel.barkbands.dmean";

	/** Descriptor from test file. */
	private static final String MULTI_DIMENSIONAL_DESCRIPTOR_1 = "lowlevel.barkbands.dmean";

	/** Descriptor from test file. */
	private static final String MULTI_DIMENSIONAL_DESCRIPTOR_2 = "lowlevel.barkbands.dmean2";

	/** Descriptor from test file. */
	private static final String VARIABLE_LENGTH_DESCRIPTOR = "rhythm.beats_position";

	/** Instance of {@link AudioDescriptorsMapper} to use in tests. */
	private final AudioDescriptorsMapper mapper = new AudioDescriptorsMapper();

	/**
	 * Ensure that correctly formatted JSON message is correctly converted into a {@link AudioDescriptors} object.
	 *
	 * @throws Exception Any exceptions trown in test
	 */
	@Test
	public void audioDescriptorsMapping() throws Exception {
		final JSONObject audioDescriptorsJSON = readJSONFile("/audio-descriptors.json");

// Path: src/main/java/com/sonoport/freesound/response/AudioDescriptors.java
// public class AudioDescriptors {
// 
// 	/** Fixed length descriptors that take a single value (e.g. pitch). */
// 	private Set<String> fixedLengthOneDimensional;
// 
// 	/** Fixed length descriptors that take a multiple values (e.g. mfcc). */
// 	private Set<String> fixedLengthMultiDimensional;
// 
// 	/** Descriptors that have different values depending on the sound. */
// 	private Set<String> variableLength;
// 
// 	/**
// 	 * @return the fixedLengthOneDimensional
// 	 */
// 	public Set<String> getFixedLengthOneDimensional() {
// 		return fixedLengthOneDimensional;
// 	}
// 
// 	/**
// 	 * @param fixedLengthOneDimensional the fixedLengthOneDimensional to set
// 	 */
// 	public void setFixedLengthOneDimensional(final Set<String> fixedLengthOneDimensional) {
// 		this.fixedLengthOneDimensional = fixedLengthOneDimensional;
// 	}
// 
// 	/**
// 	 * @return the fixedLengthMultiDimensional
// 	 */
// 	public Set<String> getFixedLengthMultiDimensional() {
// 		return fixedLengthMultiDimensional;
// 	}
// 
// 	/**
// 	 * @param fixedLengthMultiDimensional the fixedLengthMultiDimensional to set
// 	 */
// 	public void setFixedLengthMultiDimensional(
// 			final Set<String> fixedLengthMultiDimensional) {
// 		this.fixedLengthMultiDimensional = fixedLengthMultiDimensional;
// 	}
// 
// 	/**
// 	 * @return the variableLength
// 	 */
// 	public Set<String> getVariableLength() {
// 		return variableLength;
// 	}
// 
// 	/**
// 	 * @param variableLength the variableLength to set
// 	 */
// 	public void setVariableLength(final Set<String> variableLength) {
// 		this.variableLength = variableLength;
// 	}
// }


// Path: src/test/java/com/sonoport/freesound/response/mapping/AudioDescriptorsMapperTest.java
import static org.junit.Assert.assertTrue;
import org.json.JSONObject;
import org.junit.Test;
import com.sonoport.freesound.response.AudioDescriptors;

/*
 * Copyright 2014 Sonoport (Asia) Pte Ltd
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.sonoport.freesound.response.mapping;




/**
 * Unit tests to ensure the correct operation of {@link AudioDescriptorsMapper}.
 *
 * Test data is located at <code>/src/test/resources/audio-descriptors.json</code>.
 */
public class AudioDescriptorsMapperTest extends MapperTest {

	/** Descriptor from test file. */
	private static final String ONE_DIMENSIONAL_DESCRIPTOR_1 = "lowlevel.average_loudness";

	/** Descriptor from test file. */
	private static final String ONE_DIMENSIONAL_DESCRIPTOR_2 = "lowlevel.barkbands.dmean";

	/** Descriptor from test file. */
	private static final String MULTI_DIMENSIONAL_DESCRIPTOR_1 = "lowlevel.barkbands.dmean";

	/** Descriptor from test file. */
	private static final String MULTI_DIMENSIONAL_DESCRIPTOR_2 = "lowlevel.barkbands.dmean2";

	/** Descriptor from test file. */
	private static final String VARIABLE_LENGTH_DESCRIPTOR = "rhythm.beats_position";

	/** Instance of {@link AudioDescriptorsMapper} to use in tests. */
	private final AudioDescriptorsMapper mapper = new AudioDescriptorsMapper();

	/**
	 * Ensure that correctly formatted JSON message is correctly converted into a {@link AudioDescriptors} object.
	 *
	 * @throws Exception Any exceptions trown in test
	 */
	@Test
	public void audioDescriptorsMapping() throws Exception {
		final JSONObject audioDescriptorsJSON = readJSONFile("/audio-descriptors.json");

		final AudioDescriptors audioDescriptors = mapper.map(audioDescriptorsJSON);