package com.googlecode.gwt.test.jso; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArrayString; import com.googlecode.gwt.test.GwtTestTest; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class JsArrayStringTest extends GwtTestTest { private JsArrayString jsArrayString; @Before public void beforeJsArrayStringTest() { // Given jsArrayString = JavaScriptObject.createArray().cast(); assertThat(jsArrayString.length()).isEqualTo(0); // When jsArrayString.set(4, "test"); // Then assertThat(jsArrayString.length()).isEqualTo(5); assertThat(jsArrayString.get(3)).isNull(); } @Test public void join() { // When String join = jsArrayString.join(); // Then assertThat(join).isEqualTo(",,,,test"); } @Test public void join_AfterResize() { // Given jsArrayString.setLength(3); // When String join = jsArrayString.join(); // Then assertThat(join).isEqualTo(",,"); assertThat(jsArrayString.length()).isEqualTo(3); } @Test public void push() { // When jsArrayString.push("pushed"); // Then assertThat(jsArrayString.join()).isEqualTo(",,,,test,pushed"); assertThat(jsArrayString.length()).isEqualTo(6); assertThat(jsArrayString.get(jsArrayString.length() - 1)).isEqualTo("pushed"); } @Test public void shift() { // Given jsArrayString.set(0, "toshift"); // When String shift = jsArrayString.shift(); // Then assertThat(shift).isEqualTo("toshift"); assertThat(jsArrayString.length()).isEqualTo(4); assertThat(jsArrayString.join()).isEqualTo(",,,test"); } @Test public void unboundedGet_ReturnsNull() { // When String unbounded = jsArrayString.get(100); // Then assertThat(unbounded).isNull(); } @Test public void unshift() { // When jsArrayString.unshift("tounshift"); // Then assertThat(jsArrayString.length()).isEqualTo(6); assertThat(jsArrayString.join()).isEqualTo("tounshift,,,,,test"); } }