package org.jooby.assets;
import static org.easymock.EasyMock.expect;
import static org.junit.Assert.assertEquals;
import java.io.InputStream;
import java.net.URL;
import org.jooby.Asset;
import org.jooby.MediaType;
import org.jooby.test.MockUnit;
import org.junit.Test;
public class AssetForwardingTest {
@Test
public void etag() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.etag()).andReturn("tag");
})
.run(unit -> {
assertEquals("tag", new Asset.Forwarding(unit.get(Asset.class)).etag());
});
}
@Test
public void lastModified() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.lastModified()).andReturn(1L);
})
.run(unit -> {
assertEquals(1L, new Asset.Forwarding(unit.get(Asset.class)).lastModified());
});
}
@Test
public void len() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.length()).andReturn(1L);
})
.run(unit -> {
assertEquals(1L, new Asset.Forwarding(unit.get(Asset.class)).length());
});
}
@Test
public void name() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.name()).andReturn("n");
})
.run(unit -> {
assertEquals("n", new Asset.Forwarding(unit.get(Asset.class)).name());
});
}
@Test
public void path() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.path()).andReturn("p");
})
.run(unit -> {
assertEquals("p", new Asset.Forwarding(unit.get(Asset.class)).path());
});
}
@Test
public void url() throws Exception {
new MockUnit(Asset.class, URL.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.resource()).andReturn(unit.get(URL.class));
})
.run(unit -> {
assertEquals(unit.get(URL.class), new Asset.Forwarding(unit.get(Asset.class)).resource());
});
}
@Test
public void stream() throws Exception {
new MockUnit(Asset.class, InputStream.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.stream()).andReturn(unit.get(InputStream.class));
})
.run(unit -> {
assertEquals(unit.get(InputStream.class),
new Asset.Forwarding(unit.get(Asset.class)).stream());
});
}
@Test
public void type() throws Exception {
new MockUnit(Asset.class)
.expect(unit -> {
Asset asset = unit.get(Asset.class);
expect(asset.type()).andReturn(MediaType.css);
})
.run(unit -> {
assertEquals(MediaType.css, new Asset.Forwarding(unit.get(Asset.class)).type());
});
}
}