Package com.mysema.query.support

Source Code of com.mysema.query.support.NormalizationTest

package com.mysema.query.support;

import com.mysema.testutil.Benchmark;
import com.mysema.testutil.Runner;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class NormalizationTest {

    @Test
    public void Performance() throws Exception {
        Runner.run("NormalizationTest Performance", new Benchmark() {

            @Override
            public void run(int times) throws Exception {
                for (int i = 0; i < times; i++) {
                    Normalization.normalize("select name from companies where id = ?");
                }
            }
        });
    }

    @Test
    public void Variables() {
        assertEquals("var1 + 3", Normalization.normalize("var1 + 3"));
    }

    @Test
    public void Normalize_Addition() {
        assertEquals("3", Normalization.normalize("1+2"));
        assertEquals("where 3 = 3", Normalization.normalize("where 1+2 = 3"));
        assertEquals("where 3.3 = 3.3", Normalization.normalize("where 1.1+2.2 = 3.3"));
        assertEquals("where 3.3 = 3.3", Normalization.normalize("where 1.1 + 2.2 = 3.3"));
    }

    @Test
    public void Normalize_Subtraction() {
        assertEquals("3", Normalization.normalize("5-2"));
        assertEquals("where 3 = 3", Normalization.normalize("where 5-2 = 3"));
        assertEquals("where 3.3 = 3.3", Normalization.normalize("where 5.5-2.2 = 3.3"));
        assertEquals("where 3.3 = 3.3", Normalization.normalize("where 5.5 - 2.2 = 3.3"));
    }

    @Test
    public void Normalize_Multiplication() {
        assertEquals("10", Normalization.normalize("5*2"));
        assertEquals("where 10 = 10", Normalization.normalize("where 5*2 = 10"));
        assertEquals("where 11 = 11", Normalization.normalize("where 5.5*2 = 11"));
        assertEquals("where 10.8 = 10.8", Normalization.normalize("where 5.4 * 2 = 10.8"));
        assertEquals("where 9 = 9 and 13 = 13", Normalization.normalize("where 2 * 3 + 3 = 9 and 5 + 4 * 2 = 13"));
    }

    @Test
    public void Normalize_Division() {
        assertEquals("2.5", Normalization.normalize("5/2"));
        assertEquals("where 2.5 = 2.5", Normalization.normalize("where 5/2 = 2.5"));
        assertEquals("where 2.6 = 2.6", Normalization.normalize("where 5.2/2 = 2.6"));
        assertEquals("where 2.6 = 2.6", Normalization.normalize("where 5.2 / 2 = 2.6"));
    }

    @Test
    public void Mixed() {
        assertEquals("13", Normalization.normalize("2 * 5 + 3"));
        assertEquals("17", Normalization.normalize("2 + 5 * 3"));
        assertEquals("-2.5", Normalization.normalize("2.5 * -1"));
        assertEquals("hours * 2 + 3", Normalization.normalize("hours * 2 + 3"));
        assertEquals("2 + 3 * hours", Normalization.normalize("2 + 3 * hours"));
    }

    @Test
    public void PI() {
        assertEquals("0.1591549431", Normalization.normalize("0.5 / " + Math.PI));
    }

    @Test
    public void DateTimeLiterals() {
        assertEquals("'1980-10-10'", Normalization.normalize("'1980-10-10'"));
    }

    @Test
    public void DateTimeLiterals2() {
        assertEquals("\"1980-10-10\"", Normalization.normalize("\"1980-10-10\""));
    }

    @Test
    public void Math1() {
        assertEquals("fn(1)", Normalization.normalize("fn(-1+2)"));
        assertEquals("fn(3)", Normalization.normalize("fn(1--2)"));
    }

    @Test
    public void Substring() {
        assertEquals("substring(cat.name,1,locate(?1,cat.name)-1)",
                Normalization.normalize("substring(cat.name,0+1,locate(?1,cat.name)-1-0)"));
    }
}
TOP

Related Classes of com.mysema.query.support.NormalizationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.