TLS fuckup

Wer in der technischen Welt die letzten Tage nicht geschlafen hat, hat das ganze Szenario “Heartbleed” bestimmt mitgekriegt. Ich will dazu gar nichts schreiben, nur ein paar URLs posten an die man denken sollte, wenn man neue Passwörter vergibt:

Die Liste wird dann von mir erweitert, sobald ich drauf stoße :)

EasyMock, Unitils and a mixture of both

So, we do use unitils and easymock for quite a while now. We do our mocking with easymock and use the unitils-inject and unitils-easymock modules to simplify our tests.

But, there was a very weird behaviour. So I tried to boil it down to the reason why it fails. Here is some code that we actually want to test:

package de.matthiascoy.easymock.easymockprimitivetest;
public interface InterfaceB {
    void foobar(boolean b);
}
package de.matthiascoy.easymock.easymockprimitivetest;
public class TestedObjectClass {
    private InterfaceB interfaceB;
    public void runMe(boolean b) {
        interfaceB.foobar(b);
        interfaceB.foobar(b);
    }
}

So, obviously we want to test toe runMe-method and want to verify that the two calls on the interfaceB are actually done with the given arguments. Our first try was this code:

package de.matthiascoy.easymock.easymockprimitivetest;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.unitils.UnitilsJUnit4TestClassRunner;
import org.unitils.easymock.EasyMockUnitils;
import org.unitils.inject.annotation.InjectIntoByType;
import org.unitils.inject.annotation.TestedObject;

@RunWith(UnitilsJUnit4TestClassRunner.class)
public class EasyMockAndUnitilsTest {

    @TestedObject
    private TestedObjectClass testedObject;

    @InjectIntoByType
    private InterfaceB interfaceB;

    @Before
    public void setUp() {
        this.interfaceB = EasyMock.createMock(InterfaceB.class);
    }

    @Test(expected = AssertionError.class)
    public void testPrimitiveBoolean() {
        boolean B = true;

        interfaceB.foobar(B);
        EasyMock.expectLastCall();
        interfaceB.foobar(!B);
        EasyMock.expectLastCall();
        EasyMockUnitils.replay();

        testedObject.runMe(B);

        EasyMockUnitils.verify();
    }
}

What you can see is, that we do expect first TRUE and then FALSE, but that should fail. We do test that with the “expected=AssertionError” value in the @Test annotation. But actually this tests fails, because there is no AssertionError. With just a “@Test” the test just runs and shows us a green light. That’s very strange. So, we thought: must be a bug in the testingframework, but which one?

So, we created a EasyMock 3.2 only test

package de.matthiascoy.easymock.easymockprimitivetest;

import org.easymock.EasyMock;
import org.easymock.EasyMockRunner;
import org.easymock.EasyMockSupport;

import org.easymock.Mock;
import org.easymock.TestSubject;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(EasyMockRunner.class)
public class PureEasyMockTest extends EasyMockSupport {

    @TestSubject
    private TestedObjectClass testedObject = new TestedObjectClass();

    @Mock
    private InterfaceB interfaceBMock;

    @Test(expected = AssertionError.class)
    public void testPrimitiveBoolean() {
        boolean B = true;

        interfaceBMock.foobar(B);
        EasyMock.expectLastCall();
        interfaceBMock.foobar(!B);
        EasyMock.expectLastCall();

        replayAll();

        testedObject.runMe(B);

        verifyAll();
    }

    @Test(expected = AssertionError.class)
    public void testPrimitiveBooleanWithEq() {
        boolean B = true;

        interfaceBMock.foobar(EasyMock.eq(B));
        EasyMock.expectLastCall();
        interfaceBMock.foobar(EasyMock.eq(!B));
        EasyMock.expectLastCall();

        replayAll();

        testedObject.runMe(B);

        verifyAll();
    }
}

This test does work. So, easymock seems not to be the problem. Now, to unitils:

package de.matthiascoy.easymock.easymockprimitivetest;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.unitils.UnitilsJUnit4TestClassRunner;
import org.unitils.inject.annotation.InjectIntoByType;
import org.unitils.inject.annotation.TestedObject;
import org.unitils.mock.Mock;

@RunWith(UnitilsJUnit4TestClassRunner.class)
public class UnitilsTest {

    @TestedObject
    private TestedObjectClass testedObject;

    @InjectIntoByType
    private Mock<InterfaceB> interfaceB;

    @Test(expected = AssertionError.class)
    public void testPrimitiveBoolean() {
        boolean B = true;

        testedObject.runMe(B);

        interfaceB.assertInvoked().foobar(B);
        interfaceB.assertInvoked().foobar(!B);
    }
}

And this test just works fine as well. So, the problem must be somewhere in the middle. I’m still not sure where exactly, but the second call to interfaceB.foobar in EasyMockAndUnitilsTest.testPrimitiveBoolean does not care about the arguments. It does care about if it’s called or not, but the argument is ignored.

So, we decided to migrate all our tests to pure easymock. Maybe, somehow we will move to mockito at the end … maybe.

Veröffentlicht in Java

Sneak: Jack Ryan: Shadow Recruit

Da geht man mal wieder in die Sneak in die Schauburg, da kommt da so ein Schundfilm. Ich mein, mir sind Hollywoodblockbuster doch irgendwie lieber als Filme der bayrischen Filmförderung in Verbindung mit der französischen Gesellschaft zur Etablierung von Film Noir, aber dieser Schinken lohnt sich nicht wirklich. Blabla-Story, Keria Kneightly, die ich den ganzen Film über für Natalie Portman gehalten hab, Chris Pine (Captain Kirk) und Kevin Kostner (nunja, bei mir halt Robin Hood). Larifari, bissle Romantik, dann plötzlich Agententhriller, gemischt mit der üblichen Portion TERRORISMUS!!!!111elf und schon hat man einen Film. Imdb gibt nicht umsonst nur 6,5, ich würde sogar nur 5 geben …. den Film schaut man noch nicht mal später auf DVD.

Veröffentlicht in Kino

New York – Williamsburg

Wir waren natürlich auch im z.Z. angesagtestem Viertel von NYC: Williamsburg. Wen man in NYC Kunst, Musik bzw. einfach allgemein Künstler treffen will, geht man dort hin. Und, der Hipster der was auf sich hält, wohnt natürlich dort.

Um meinem Ruf gerecht zu werden (“du postest nur Bilder vom Essen”), war einer der ersten Dinge die wir besucht haben, ein Essensmarkt. Hier gab es keine Früchte, Gemüse oder sonstige Auslagen, hier haben kleine Firmen ihr Essensangebot ausgelegt. Man steht also am East River, mit Blick auf Manhatten, friert sich den Hintern ab und futtern Toastbrot. Oder Muffins. Oder Kuchen. Oder Pizza. Oder Bagels. Oder sonstirgendwelcheszeug.

Ansonsten kann ich dazu nicht viel erzählen, man läuft halt rum, unterhält sich mit Leuten, stöbert in Läden, langweilt sich in anderen Läden, weil $bekannte ein Kleid kaufen will und am Ende ißt man dann Waffeln mit Hühnchen. Genau. Aber dazu gibts noch einen eigenen Beitrag :D

Cambodia – Miscellaneous

Eigentlich müsste ich noch ein paar Artikel über New York schreiben, aber chronologische Reihenfolge wird eh überschätzt.

Heute hab ich mich mitm Motobike durch Phnom Penh fahren lassen. Eine Erfahrung sondersgleichen. Dadurch das ich dauernd Angst hatte das meine Knie direkt amputiert werden, konnte ich wenigstens nicht mehr dadrüber nachdenken, dass Rucksäche gerne den Leuten entrissen werden auf so einem Moped.

Man stelle sich folgendes vor: Der durchschnittliche Kambodschaner ist .. 1,40 groß. Allerhöchstens. Nagut, sagen wir mal 1,60. Und dann setzt sich der Matze hinten auf die Sitzfläche. Beim Losfahren hatten wir 10 Minuten einen nicht ganz so stillen Begleiter, der eigentlich nichts gemacht hat ausser herzhaft gelacht. Hinter uns herfahren und herzhaft lachen :) Ein spassiges Volk.

Gut, wenn man einfach mal die Verkehrsregeln die man irgendwann mal gelernt hat vergisst, dann sieht man durchaus ein bissle ein System im Chaos:

  1. Es gibt keine Lücke die zu klein ist
  2. Spuren sind nur Hilfslinien damit man alle 10min sich daran mal wieder grob orientieren
  3. Ampeln werden sogar größtenteils beachtet. Allerdings nur bis die einen wieder Rot haben (und es normalerweise noch so 4-5 Sekunden dauert bis man selber grün hat). Gefahren wird wenn Platz ist
  4. Auch die Gegenspur ist nur auf dem Papier eine Gegenspur. Wenn Platz ist, wird auch dort gefahren. Egal ob in der Mitte eine dicke Betonsperre ist, die das eigentlich verhindern soll
  5. Wenn man auf eine übervolle Kreuzung drauffährt ohne tatsächlich irgendeine Art von Bremsung zu spüren, dann wirds doch recht schnell mulmig im Magen.

Aber, irgendwie funktionierts. Gestern hab ich einen Inder getroffen und in ausgefragt, ob der Verkehr irgendwie vergleichbar wäre mit dem indischen. Er meinte: Nö. Viel zu wenig los.

Gut. So können sich Sichtweisen unterscheiden :)

Kleine Nebengeschichte: Beim Schreiben des Artikels läuft neben mir die Waschmaschine. Als gerade das Schleudern anfing, fing diese sich an zu bewegen. Und zwar nicht zu knapp. Man kennt eventuell das Backstein/Waschmaschinen-Video. Nicht ganz so schlimm, aber ähnlich. Sofort waren drei Helfer da und hielten das Ding fest. Es wurde versucht es in die Ursprungsposition zurückzuschieben, aber so eine Waschmaschine ist doch recht unkontrollierbar :) Dann wurde versucht sie mit Handtüchern und ähnlichem zumindest etwas im Lärmpegel zu reduzieren und nach gerade mal 10min war das Schauspiel auch schon wieder vorbei. Aber nur weil der Schleudergang fertig war. Was ein Spaß :)

Planlos durch New York

Der erste Tag in New York war, so wie eigentlich alle Tage, ungeplant und irgendwie in Manhatten. Wir sind erstmal rein, zum Times Square und von da an unkontrolliert Richtung Süden. Verpflichtend waren der Besuch bei Starbucks (oder wie Giannas Freund gerne sagt: “fivebucks, because you won’t get out without paying at least five bucks”) und natürlich Dunkin’ Donuts. Die sind tatsächlich hervorragend gut. Natürlich bestehen die zu 150% aus Zucker, aber das macht sie nur noch leckerer :)

Auf dem Weg Richtung Süden hab ich dann vorgeschlagen, wir könnten mal im Kino vorbeischauen, ob wir noch Doctor Who Karten kriegen (Doctor Who hatte sein 50jähriges Jubiläum und es wurde weltweit eine Sonderfolge ausgestrahlt). Also sind wir einfach in Richtung des Kinos das ich ausgesucht hatte. Dabei sind wir am Union Square auf sowas wie einen Weihnachtsmarkt gestoßen.

Nach einem professionellen Fotografengespräch über Belichtung, Blende, Streetphotography und Kamerasensoren (also, profimässig vom Hee Tatt, staunend und ohne Ahnung von mir) gings dann weiter. Leider hatte das Kino keine Karten mehr (Ausverkauft, wer konnte sowas ahnen) und die anderen Kinos in der Nähe haben den Film erst gar nicht im Programm.

Nunja, dann halt wieder zurück in den Norden, auf zu Macy’s, dem wahrscheinlich größten Store in Manhattan. Insgesamt nimmt der gute zwei Blocks ein. Vom Prinzip her zu vergleichen mit einem Karstadt, nur ungefährt 10x so groß.

Dann gings wieder zurück zum Times Square um den 100000 Touristenfallen entgegen zu laufen. Irgendwann gabs dann doch wieder ein Rumoren in der Magengegend und wir haben uns für Applebee’s entschieden. Erstaunlich gute Qualität zu einigermassen ordentlichen Preisen (für Manhattan).

DSC00149 DSC00150

Danach war dann nimmer viel und wir sind wieder Richtung Heimat gewankt. Allerdings gabs dabei noch ein Filmteam das wir abgegriffen haben. Bald sind wir also in einer Comedy Central Produktion zu sehen :)

DSC00157 DSC00158

New York – ein anfänglicher Bericht

1500 Bilder habe ich gemacht. Das sind brutto mehr als ich in drei Monaten Schweden/Finnland/Estland/Dänemark gemacht habe. Wieviel davon netto übrig bleiben, sehen wir dann.

Aber, erstmal bilderloser Bericht aus dem schönen aber kalten Amerika. Nach einer spontanen Idee beim Aufbau eines Schrankes haben Hee Tatt und ich die Idee umgesetzt nach NYC zu fliegen. Am 21.12. ging es los und schon nach 9 Tagen ging es wieder zurück.

Aber warum vom Ende reden, wenn alleine der Anfang schon soviele Überraschungen und Spaß bietet. Ich hätte eigentlich noch zwei Artikel über Helsinki und Kopenhagen zu schreiben, aber, das kann warten :) Die Einreise in die USA verlief ohne Probleme. Ich habe diverse erwartet, immerhin hab ich zwei Stempel für Israel im Pass, einen gebuchten Flug nach Kambodscha und diverse dämliche Überweisungsverwendungszwecke. Und, laut diversen Leuten das größte Problem, einen Bart :)

Aber, aller Unkenrufe zum Trotz, ging die Einreise so schnell wie sie nur gehen konnte. Beim Einreisedings brav angestellt, gewartet bis man dran war, alle Finger scannen lassen, einmal für die Kamera nicht lächeln und dann kanns auch schon reingehen ins schöne NY.

Aber, was wäre Amerika ohne Schlangestehen. Nachdem wir schon 1-2 Stunden standen nur um unsere Fingerabdrücke loszuwerden (meine hatten sie eigentlich eh schon zweimal, wozu auch immer die noch ein drittes Mal gebraucht werden), kam direkt danach nochmal eine Stunde Warten auf ein freies Taxi. Der JFK is nämlich nicht gerade so besonders in der Nähe von Astoria (Teil von Queens) gelegen und wir wollten nicht direkt uns in irgendwelche Bahnen quetschen. Nach $50 Dollarn waren wir dann auch schon bei Ginna, eine Bekannte von Hee Tatt, die im Unterkunft gewährt hab. Da aber das Sofa nicht für zwei reicht, habe ich den Luxus von airbnb genutzt und hatte ein paar SubwayStationen weiter ein kleines aber feines Zimmer bei Ray. Netter Kerl, asiatische Freundin, 3 Schritte weg vom Queensboro Plaza und somit top gelegen für jeglichen Trip nach Manhatten.

Am ersten Abend hats aber noch nicht mal für Bilder gereicht, ausser einen Besuch bei Ginna, den Schlüssel abholen bei Ray und einer echten New Yorker Pizza hat es zu nichts gereicht. Gut, streng genommen war es keine Pizza sondern n Burger, aber wer will da schon kleinlich sein. Ein paar Tips ausgetauscht, nochmal mit Ray unterhalten und bissle mit dem Hund von Ray gespielt. Dann aber ab ins Bett, um 8:30 am nächsten Morgen sollte es weitergehen.

Wie schon gesagt, keinerlei Bilder für diesen Tag, die zwei vom Flughafen erspare ich euch.

USA, Land der unbegrenzten Möglichkeiten

Nachdem der letzte Urlaub ja kein Urlaub war, weil ich ja Arbeitslos war und ganz arm dran, kommt jetzt dann der Urlaub den man sich verdient hat :)

Heute morgen um 9 Uhr bin ich in den ICE nach Frankfurt gestiegen, um mitm Hee Tatt nach New York aufzubrechen. Gesagt, getan, viel gibt es natürlich noch nicht zu berichten, der Flug verlief ohne Zwischenfälle, wir sind angekommen, ich habe Hee Tatts Bekannte schon kennengelernt und mein Gastgeber erscheint auch ganz nett. Die Einreisebehörde hat sich auch benommen und nach gerade mal 1,5 Stunden waren wir auch schon komplett durch alles durch, nur um noch auf ein Taxi zu warten. Nochmal 30min. Die halbe Stunde, die der Flieger irgendwie früher gelandet ist, war somit komplett verflogen.

Mein Schlafplatz für die nächsten Tage liegt in der Nähe der Queensboro Plaza. Hurra :)

Veröffentlicht in USA