// Path: src/java/krasa/formatter/common/ModifiableFile.java
// public class ModifiableFile extends File {
// 
// 	public ModifiableFile(String pathToConfigFileJava) {
// 		super(pathToConfigFileJava);
// 	}
// 
// 	public boolean wasChanged(Monitor lastState) {
// 		checkIfExists();
// 		return this.lastModified() != lastState.getLastStateTime();
// 	}
// 
// 	public void checkIfExists() throws FileDoesNotExistsException {
// 		if (!this.exists()) {
// 			throw new FileDoesNotExistsException(this);
// 		}
// 	}
// 
// 	public Monitor getModifiedMonitor() {
// 		return new Monitor(this);
// 	}
// 
// 	@NotNull
// 	public String getSystemIndependentPath() {
// 		return PathUtil.toSystemIndependentName(getAbsolutePath());
// 	}
// 
// 	/**
// 	 * @author Vojtech Krasa
// 	 */
// 	public static class Monitor {
// 		private long lastStateTime;
// 
// 		public Monitor(File file) {
// 			lastStateTime = file.lastModified();
// 		}
// 
// 		public long getLastStateTime() {
// 			return lastStateTime;
// 		}
// 
// 		public boolean wasModified(File l) {
// 			return l.lastModified() > lastStateTime;
// 		}
// 	}
// }


import com.intellij.openapi.util.io.FileUtil;
import krasa.formatter.common.ModifiableFile;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
package krasa.formatter.settings.provider;



/**
 * @author Vojtech Krasa
 */
public class CachedProviderTest {

	protected CachedProvider<String> cachedProvider;
	protected File tempFile;

	@Before
	public void setUp() throws Exception {
		tempFile = File.createTempFile("12311", "2");
		cachedProvider = new CachedProvider<String>(new ModifiableFile(tempFile.getPath())) {

			@Override
			protected String readFile(File file) {
				try {
					return FileUtils.readFileToString(file);
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
		};
	}

	@Test
	public void testWasChanged() throws Exception {
		cachedProvider.get();
// Path: src/java/krasa/formatter/common/ModifiableFile.java
// public class ModifiableFile extends File {
// 
// 	public ModifiableFile(String pathToConfigFileJava) {
// 		super(pathToConfigFileJava);
// 	}
// 
// 	public boolean wasChanged(Monitor lastState) {
// 		checkIfExists();
// 		return this.lastModified() != lastState.getLastStateTime();
// 	}
// 
// 	public void checkIfExists() throws FileDoesNotExistsException {
// 		if (!this.exists()) {
// 			throw new FileDoesNotExistsException(this);
// 		}
// 	}
// 
// 	public Monitor getModifiedMonitor() {
// 		return new Monitor(this);
// 	}
// 
// 	@NotNull
// 	public String getSystemIndependentPath() {
// 		return PathUtil.toSystemIndependentName(getAbsolutePath());
// 	}
// 
// 	/**
// 	 * @author Vojtech Krasa
// 	 */
// 	public static class Monitor {
// 		private long lastStateTime;
// 
// 		public Monitor(File file) {
// 			lastStateTime = file.lastModified();
// 		}
// 
// 		public long getLastStateTime() {
// 			return lastStateTime;
// 		}
// 
// 		public boolean wasModified(File l) {
// 			return l.lastModified() > lastStateTime;
// 		}
// 	}
// }


// Path: test/java/krasa/formatter/settings/provider/CachedProviderTest.java
import com.intellij.openapi.util.io.FileUtil;
import krasa.formatter.common.ModifiableFile;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.IOException;

package krasa.formatter.settings.provider;



/**
 * @author Vojtech Krasa
 */
public class CachedProviderTest {

	protected CachedProvider<String> cachedProvider;
	protected File tempFile;

	@Before
	public void setUp() throws Exception {
		tempFile = File.createTempFile("12311", "2");
		cachedProvider = new CachedProvider<String>(new ModifiableFile(tempFile.getPath())) {

			@Override
			protected String readFile(File file) {
				try {
					return FileUtils.readFileToString(file);
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
		};
	}

	@Test
	public void testWasChanged() throws Exception {
		cachedProvider.get();
		Assert.assertFalse(cachedProvider.wasChanged());