# Junit Tests ReconnectCfgStorage



## tanzverfuehrung (25. Mai 2011)

Meine Klasse die getestet werden soll:


```
public class ReconnectCfgStorage extends AbstractStorage<ReconnectCfg> {

	/** */
	public static final String ATTR_RECONNECT_INTERVALL_MS = "intervallMs";
	/** */
	public static final String ATTR_RECONNECT_RETIRES = "retires";

	@Override
	protected ReconnectCfg createCfg() {
		return new ReconnectCfg();
	}

	@Override
	protected IStatus loadInternal(ReconnectCfg cfg, Preferences pref){
		cfg.setNumberOfRetries(pref.getInt(ATTR_RECONNECT_RETIRES, UNLIMITED_RETIRES));
		cfg.setReconnectIntervall(milliSeconds(pref.getInt(ATTR_RECONNECT_INTERVALL_MS, 5000)));
		return OK_STATUS;
	}
```

ich weiß nicht so recht was ich testen soll!und WIE?!
plugin habe ich habe schon  zum fragment gemacht, das ich die methoden testen kann.


----------



## XHelp (25. Mai 2011)

Naja, du kannst ja prüfen, ob createCfg was null-verschiedenes zurückliefert und ob loadInternal das setzt, was es setzen muss.


----------



## tanzverfuehrung (25. Mai 2011)

XHelp hat gesagt.:


> Naja, du kannst ja prüfen, ob createCfg was null-verschiedenes zurückliefert und ob loadInternal das setzt, was es setzen muss.






```
public class TestReconnectCfgStorage {

	private ReconnectCfgStorage reconnectCfgStorage;
	@Before
	public void setUp() throws Exception {
		reconnectCfgStorage = new ReconnectCfgStorage();
	}
	/**
	 * Prüft ob neues Konfigurations-Objekt, niemals <code>null</code> ist.
	 * @throws Exception
	 */
	@Test
	public void testNotNullCfg() throws Exception {
		assertThat(reconnectCfgStorage.createCfg(), is(notNullValue()));
	}
	
	@Test
	public void testname() throws Exception {
		ReconnectCfg cfg = new ReconnectCfg();
		Preferences pref = new Preferences() {
			
			@Override
			public void sync() throws BackingStoreException {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void removeNode() throws BackingStoreException {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void remove(String key) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putLong(String key, long value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putInt(String key, int value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putFloat(String key, float value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putDouble(String key, double value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putByteArray(String key, byte[] value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void putBoolean(String key, boolean value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void put(String key, String value) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public Preferences parent() {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public boolean nodeExists(String pathName) throws BackingStoreException {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public Preferences node(String pathName) {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public String name() {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public String[] keys() throws BackingStoreException {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public long getLong(String key, long def) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			@Override
			public int getInt(String key, int def) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			@Override
			public float getFloat(String key, float def) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			@Override
			public double getDouble(String key, double def) {
				// TODO Auto-generated method stub
				return 0;
			}
			
			@Override
			public byte[] getByteArray(String key, byte[] def) {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public boolean getBoolean(String key, boolean def) {
				// TODO Auto-generated method stub
				return false;
			}
			
			@Override
			public String get(String key, String def) {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public void flush() throws BackingStoreException {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void clear() throws BackingStoreException {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public String[] childrenNames() throws BackingStoreException {
				// TODO Auto-generated method stub
				return null;
			}
			
			@Override
			public String absolutePath() {
				// TODO Auto-generated method stub
				return null;
			}
		};
		System.out.println(reconnectCfgStorage.loadInternal(cfg, pref));
		assertThat(reconnectCfgStorage.loadInternal(cfg, pref),is(IStatus.OK));
		assertThat(reconnectCfgStorage.loadInternal(cfg, pref), is(notNullValue()));
	}

}
```

also das sind bis jetzt meine Junit tests,
lasse ich diese zeile weg

```
assertThat(reconnectCfgStorage.loadInternal(cfg, pref),is(IStatus.OK));
```
dann leuchten sie alle grün!aber ich muss doch prüfen ob der Staus ok is!!!!
also brauche ich ja die zeile aber da kriege ich enn fehler:
"The method assertThat(T, Matcher<T>) in the type Assert is not applicable for the arguments (IStatus, Matcher<capture#1-of ? super Integer>)"

ja und um die methode  
	
	
	
	





```
loadInternal(ReconnectCfg cfg, Preferences pref){
```
zu testen, muss ich ja erst mal ein ReconnectCfg -objekt und ein Preferences -objekt erzeugen oder nicht.

```
ReconnectCfg cfg = new ReconnectCfg();
		Preferences pref = new Preferences() {....}
```

doch wenn ich ein Preferneces objekt erzeuge,kommen die ganzen methoden!
ist das flasch?
oder muss das so sein???????:L


----------



## tanzverfuehrung (25. Mai 2011)

XHelp hat gesagt.:


> Naja, du kannst ja prüfen, ob createCfg was null-verschiedenes zurückliefert und ob loadInternal das setzt, was es setzen muss.




genauso wie ich nicht verstehe...wenn ich den test so baue


```
@Test
	public void testname1563() throws Exception {
		assertThat(reconnectCfgStorage.createCfg(), is(new ReconnectCfg()));
	}
```

schlägt der test fehl!und es kommt die fehler meldung:

java.lang.AssertionError: 
Expected: is <ReconnectCfg{retries=-1, interval=Duration [ms=5000]}>
            got: <ReconnectCfg{retries=-1, interval=Duration [ms=5000]}>



aber das ergibt doch kein sinn!:bahnhof::bahnhof:
weil das erwartene und das aktuelle gleich sind.
verstehe ich garnicht???:L???:L???:L???:L???:L???:L


----------



## XHelp (25. Mai 2011)

Warum sollen die gleich sein? Hast du auch equals usw überschrieben? Prüfe einfach, ob das nicht null ist.


----------



## tanzverfuehrung (25. Mai 2011)

XHelp hat gesagt.:


> Warum sollen die gleich sein? Hast du auch equals usw überschrieben? Prüfe einfach, ob das nicht null ist.


naja weil is und got doch immer gleich sein muss das der test grün wird

ja das habe ich ja schon

```
/**
     * Prüft ob neues Konfigurations-Objekt, niemals <code>null</code> ist.
     * @throws Exception
     */
    @Test
    public void testNotNullCfg() throws Exception {
        assertThat(reconnectCfgStorage.createCfg(), is(notNullValue()));
    }
```
funktioniert auch!
kannst dir eventuell für die andere methode noch den test angucken,beitrag davor?
wäre sehr lieb;(


----------



## tanzverfuehrung (25. Mai 2011)

so habe jetzt fast alles tests es fehlt mir nur noch einer 
:
Prüft ob die richtigen Konfiguration auf den übergebenen Preferences geladen und zurück gegeben werden.


```
public class TestReconnectCfgStorage {

	private ReconnectCfgStorage reconnectCfgStorage;	
	private SimplePreferences pref;
	@Before
	public void setUp() throws Exception {
		reconnectCfgStorage = new ReconnectCfgStorage();
		pref = new SimplePreferences("name",null);
	}
	/**
	 * Prüft ob neues Konfigurations-Objekt, niemals <code>null</code> ist.
	 * @throws Exception
	 */
	@Test
	public void testNotNullCfg() throws Exception {
		assertThat(reconnectCfgStorage.createCfg(), is(notNullValue()));
	}
	/**
	 * Prüft ob die Standard Werte beim erzeugen einer Configuration gesetzt werden.
	 * @throws Exception
	 */
	@Test
	public void testCfg() throws Exception {
		ReconnectCfg cfg = reconnectCfgStorage.createCfg();
		assertThat(cfg.getNumberOfRetries(), is(ReconnectCfg.UNLIMITED_RETIRES));
		assertThat(cfg.getReconnectIntervall(), is(seconds(5)));

		}
	/**
	 * Prüft ob die Preferences aus denen die Konfiguration geladen werden soll, nie <code>null</code> ist.
	 * @throws Exception
	 */
	@Test
	public void testNotNullValue() throws Exception {
		assertThat(reconnectCfgStorage.load(pref), is(notNullValue()));
	}
	/**
	 * Prüft ob eine {@link AssertionFailedException} ausgelöst wird, wenn der übergebene Parameter <code>null</code> ist.
	 * @throws Exception
	 */
	@Test(expected=AssertionFailedException.class)
	public void testNullException() throws Exception {
		reconnectCfgStorage.load(null);
	}
	
	/**
	 * Prüft ob die richtigen Konfiguration auf den übergebenen Preferences geladen und zurück gegeben werden.
	 * @throws Exception
	 */
	@Test
	public void testLoad() throws Exception {
		pref.putInt(reconnectCfgStorage.ATTR_RECONNECT_RETIRES,1);
		StorageResult<ReconnectCfg> sr = reconnectCfgStorage.load(pref);
	//		assertThat(sr.getStatus().isOK(), is());
}
}
```

assertThat(sr.getStatus().isOK(), is());
is?!
ist was?

kann mir da jemand weiter helfen???:L


----------



## XHelp (25. Mai 2011)

Welche JUnit Version benutzt du überhaupt? Warum assertThat?


----------



## tanzverfuehrung (25. Mai 2011)

XHelp hat gesagt.:


> Welche JUnit Version benutzt du überhaupt? Warum assertThat?



ich benutze eclipse 3.6
und da waren junittests automatisch mit bei
und 		

```
assertThat(actual, matcher)
```
benutzt man da eigentlich am meisten
acutal= das was gemacht werden soll, und das was erwartet wird!


----------



## tanzverfuehrung (25. Mai 2011)

XHelp hat gesagt.:


> Welche JUnit Version benutzt du überhaupt? Warum assertThat?



ich hätte dir ja gern gedankt aber irgendwie warst mir keine große hilfe.


----------



## maki (25. Mai 2011)

tanzverfuehrung hat gesagt.:


> ich hätte dir ja gern gedankt aber irgendwie warst mir keine große hilfe.


... und ich wünschte du würdest dir deine Hausaufgaben im Hausaufgaben Forum machen lassen.

*verschoben*


----------



## XHelp (25. Mai 2011)

tanzverfuehrung hat gesagt.:


> ich hätte dir ja gern gedankt aber irgendwie warst mir keine große hilfe.



Aha... ook... werd bei Gelegenheit in dem Vertrag meine Pflichten nachlesen, danke für den Hinweis :bahnhof:


----------



## tanzverfuehrung (25. Mai 2011)

maki hat gesagt.:


> ... und ich wünschte du würdest dir deine Hausaufgaben im Hausaufgaben Forum machen lassen.
> 
> *verschoben*



du schon wieder

man man man.....ueh:....hat man  ein problem, wird einem nicht geholfen.
sagt man seine meinung, mischt sich gleich wieder jeder ein oder was?!






und nur mal so, das sind keine HAUSAUFGABEN!


----------



## Tomate_Salat (25. Mai 2011)

du magst die Edit-Funktion nicht sonderlich, oder?

*Edit* ich wittere einen maki vs tanzverfuehrung-Thread in naher Zukunft auf uns zukommen


----------



## maki (25. Mai 2011)

tanzverfuehrung hat gesagt.:


> du schon wieder
> 
> man man man.....ueh:....hat man  ein problem, wird einem nicht geholfen.
> sagt man seine meinung, mischt sich gleich wieder jeder ein oder was?!
> ...


Deine Meinung kannst du für dich behalten, du kommst hierher weil du Hilfe brauchst und im Gegenzug NULL zurückgibst, bis auf frechheiten.

"Hausaufgaben" war wohl optimistisch von mir, im Endeffekt sollen wir hier deine Arbeit machen.


----------



## tanzverfuehrung (25. Mai 2011)

maki hat gesagt.:


> Deine Meinung kannst du für dich behalten, du kommst hierher weil du Hilfe brauchst und im Gegenzug NULL zurückgibst, bis auf frechheiten.
> 
> "Hausaufgaben" war wohl optimistisch von mir, im Endeffekt sollen wir hier deine Arbeit machen.




:lol:dich hat auch keiner nach deiner meinung gefragt mäuschen!!!!!
frag mich was das soll?!hast zu viel langeweile,dass du mich dauert zu labberst.... dann könntest du ja mal meine arbeit machen!....
du hast kein recht zu behaupten das ihr meine arbeit machen sollt!
denn das verlange ich nicht!!!!!!!!
ich brauche nur tipps...wozu ja das forum auch da ist!!!!(oder täusche ich mich?!?!)
und tut mir ja leid, das ich anfänger bin aber habe nun mal keine ahnung und kann deswegen auch nicht helfen!:shock:


und nun such dir ne beschäftigung!!und lass mich in ruhe!!:bloed:


----------



## maki (25. Mai 2011)

Solltest die Verwarnung ernst nehmen, und ein paar Manieren aneignen

*geschlossen*


----------



## Noctarius (25. Mai 2011)

Auch wenn es schon zu ist: Ich kann maki hier nur beipflichten. Wenn sich schon einer die Mühe macht dir zu helfen wie XHelp dann könnte man wenigstens mal danke sagen und wenn er noch so wenig geholfen hat... Manieren und Sitten scheinen langsam echt auszusterben!


----------

