//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// This file is a part of the 'esoco-storage' project.
// Copyright 2016 Elmar Sonnenschein, esoco GmbH, Flensburg, Germany
//
// 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 de.esoco.storage.mapping;

import de.esoco.storage.TestDetail;
import de.esoco.storage.TestRecord;

import java.net.URL;

import java.util.Date;

import org.junit.Test;

import static org.junit.Assert.assertEquals;


/********************************************************************
 * Test class storage mappings.
 *
 * @author eso
 */
public class ClassMappingTest
{
	//~ Methods ----------------------------------------------------------------

	/***************************************
	 * Test instance creation.
	 *
	 * @throws Exception
	 */
	@Test
	public void testConstructor() throws Exception
	{
		ClassMapping<TestRecord> aMapping =
			new ClassMapping<>(TestRecord.class);

		TestRecord aRecord =
			new TestRecord(1,
						   "foo",
						   42,
						   new Date(),
						   new URL("http://example.com"));

		aRecord.addDetail(new TestDetail("DETAIL1", 1));
		aRecord.addDetail(new TestDetail("DETAIL2", 2));

		assertEquals(5, aMapping.getAttributes().size());
		assertEquals(1, aMapping.getChildMappings().size());
	}
}

@@ -898,96 +898,14 @@
 Test
-Detail;%0Aimport de.esoco.storage.TestRecord;%0A%0Aimport java.net.URL;%0A%0Aimport java.util.Date
+Record
 ;%0A%0Ai
@@ -1452,247 +1452,8 @@
 );%0A%0A
-%09%09TestRecord aRecord =%0A%09%09%09new TestRecord(1,%0A%09%09%09%09%09%09   %22foo%22,%0A%09%09%09%09%09%09   42,%0A%09%09%09%09%09%09   new Date(),%0A%09%09%09%09%09%09   new URL(%22http://example.com%22));%0A%0A%09%09aRecord.addDetail(new TestDetail(%22DETAIL1%22, 1));%0A%09%09aRecord.addDetail(new TestDetail(%22DETAIL2%22, 2));%0A%0A
 %09%09as

support for arbitrary attribute datatypes that have string conversions