CreateTest.java

/*******************************************************************************
 * Copyright (c) 2018 Eclipse RDF4J contributors.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Distribution License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *******************************************************************************/
package org.eclipse.rdf4j.console.command;

import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.eclipse.rdf4j.common.exception.RDF4JException;
import org.eclipse.rdf4j.console.ConsoleIO;
import org.eclipse.rdf4j.repository.manager.LocalRepositoryManager;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

/**
 * Test verify command
 *
 * @author Bart Hanssens
 */
public class CreateTest extends AbstractCommandTest {
	private Create cmd;
	private ConsoleIO io;

	@BeforeEach
	public void setUp() throws IOException, RDF4JException {
		InputStream input = mock(InputStream.class);
		OutputStream out = mock(OutputStream.class);
		when(mockConsoleState.getDataDirectory()).thenReturn(locationFile);
		when(mockConsoleState.getManager()).thenReturn(new LocalRepositoryManager(locationFile));

		io = new ConsoleIO(input, out, mockConsoleState) {

			@Override
			public String readMultiLineInput(String promt) {
				switch (promt) {
				default:
					return null;
				}
			}

			@Override
			public String readMultiLineInput() {
				return null;
			}

			@Override
			public String readln(String... message) {
				switch (message[0]) {
				case "Repository ID [memory]: ":
					return "Y";
				case "Repository title [Memory store]: ":
					return "Create-Test-Memory-Store";
				case "Query Iteration Cache sync threshold [10000]: ":
					return "10";
				case "Persist (true|false) [true]: ":
					return "false";
				case "Sync delay [0]: ":
					return "0";
				case "Query Evaluation Mode (STRICT|STANDARD) [STRICT]: ":
					return "STANDARD";
				}
				return null;
			}

			@Override
			public boolean askProceed(String msg, boolean defaultValue) {
				return true;
			}

		};

		cmd = new Create(io, mockConsoleState);
	}

	@Test
	public final void startCreate() {
		cmd.execute("create", "memory");
		assertFalse(io.wasErrorWritten());
	}

}