package sklep.www;

import static org.junit.Assert.*;

import java.io.IOException;
import java.nio.file.CopyOption;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.Ignore;
import org.xml.sax.SAXException;

import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.HTMLElement;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebForm;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.WebResponse;

import sklep.baza.Baza;

// Test wymaga wcześniejszego uruchomienia aplikacji na serwerze (np. Tomcat), dlatego te testy dezaktywuję @Ignore

public class TestWitryna {
	private static final String PRALKA = "Pralka";
	private static final String ODKURZACZ = "Odkurzacz";
	private static final String OPIS = "Pralka, cena netto: 200, cena brutto: 246.";
	private static final String POTWIERDZENIE_1 = "Zakupiono 2 sztuk towaru Odkurzacz z magazynu Warszawa, kwota do zapłaty 246.";
	private WebConversation wc;
	private WebRequest req;
	private WebResponse resp;

	@BeforeClass
	public static void setUpClass() {
//		try {
//			Files.copy(Paths.get("sklep_oryginalny.db"), Paths.get(Baza.PLIK_SQLITE),
//					StandardCopyOption.REPLACE_EXISTING);
//		} catch (IOException e) {
//			e.printStackTrace();
//		}

	}
	
	@Before
	public void setUp() throws IOException, SAXException {
		wc = new WebConversation();
		req = new GetMethodWebRequest("http://localhost:8080/StaryKompletnyProjekt/Witryna");
		resp = wc.getResponse(req);
	}

	@Test @Ignore
	public void testOpis() throws IOException, SAXException {
		WebForm formularz = resp.getFormWithID("sklep");
		formularz.setParameter("operacja", "opis");
		formularz.setParameter("nazwa", "Odkurzacz");
		WebResponse resp2 = formularz.submit();
		HTMLElement element = resp2.getElementWithID("komunikat");
		String tekst = element.getText();
		assertEquals("Odkurzacz: cena netto 1000.00, cena brutto 1230.00" , tekst);
	}

	@Test @Ignore
	public void testZakup() throws IOException, SAXException {
		
		WebForm formularz = resp.getFormWithID("sklep");
		formularz.setParameter("operacja", "zakup");
		formularz.setParameter("nazwa", "Odkurzacz");
		formularz.setParameter("liczba", "2");
		WebResponse resp2 = formularz.submit();
		HTMLElement element = resp2.getElementWithID("komunikat");
		String tekst = element.getText();
		assertEquals("Zakupiono 2 sztuk towaru Odkurzacz z magazynu Lodz, kwota do zapłaty 2460.00." , tekst);	}
}










