diff --git a/account/pom.xml b/account/pom.xml index 8e8125b..48d4501 100644 --- a/account/pom.xml +++ b/account/pom.xml @@ -43,9 +43,18 @@ de.muehlencord.shared shared-jeeutil - 1.0-SNAPSHOT jar + + junit + junit + test + + + org.mockito + mockito-core + test + javax javaee-api diff --git a/account/src/test/java/de/muehlencord/shared/account/business/ConfigServiceTest.java b/account/src/test/java/de/muehlencord/shared/account/business/ConfigServiceTest.java new file mode 100644 index 0000000..1839ee1 --- /dev/null +++ b/account/src/test/java/de/muehlencord/shared/account/business/ConfigServiceTest.java @@ -0,0 +1,44 @@ + +package de.muehlencord.shared.account.business; + +import de.muehlencord.shared.account.entity.ConfigEntity; +import javax.persistence.EntityManager; +import static org.junit.Assert.assertEquals; +import org.junit.Test; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import static org.mockito.Mockito.when; +import org.mockito.runners.MockitoJUnitRunner; + +/** + * + * @author joern.muehlencord + */ +@RunWith(MockitoJUnitRunner.class) +public class ConfigServiceTest { + + @InjectMocks + private ConfigService configService; + + @Mock + private EntityManager entityManagerMock; + + @Before + public void init() { + ConfigEntity configEntity = new ConfigEntity ("account.maxFailedLogins"); + configEntity.setConfigValue("7"); + when (entityManagerMock.find(ConfigEntity.class, "account.maxFailedLogins")).thenReturn (configEntity); + } + + @Test + public void testGetMaxFailedLogins() { + configService.init(); + assertEquals ("maxFailedLogins", 7, configService.getMaxFailedLogins()); + } + + + + +} diff --git a/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java b/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java new file mode 100644 index 0000000..e2ea918 --- /dev/null +++ b/pdf/src/test/java/de/muehlencord/shared/pdf/util/ImageUtilTest.java @@ -0,0 +1,43 @@ +package de.muehlencord.shared.pdf.util; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; +import org.junit.Ignore; +import org.junit.Test; + +/** + * + * @author joern.muehlencord + */ +public class ImageUtilTest { + + public ImageUtilTest() { + } + + @Test + public void testFromBase64() throws IOException { + System.out.println ("testFromFile"); + // 208x123 + // String base64CodedString = "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"; + // 100x59 + // String base64CodedString = "iVBORw0KGgoAAAANSUhEUgAAAGQAAAA7CAYAAACNOi92AAASN0lEQVR42u1bd1SUVxYfG1ETTaImHt0kazZ1z65pm7IxiRoVe28xTc1aEo26ia5GBZUmTRAsKCoCigoq2LsUUUDACirVhhQVQUFEaXr3dy8zw8wwDDNgTP6Y57lH/eb7Xrm/d+u7T0Hm9qdqCjMLzICYmxkQMyDmZgbEDIi5mQExA2JufwQgcSnZ9OuqwzTHL5zm+FbSbNA8/0jy2n2KwhOvUnbeXSorr9DbSXnFQ9oTf5Fm+IRRZm6hPHsEik3OoplrwrT61UezfcOEkq7dkm9Lyyrot7V47qfv3XCy3xRFW48lUUpWPpVVVBhc4N37pZhHNs31i6BO0/3pb/9ZQe9M8qHvXHfSlmPJlHP7Hj189Kjad8UlZbRs5wmZQ8XDh0Yz1GN7HM3y0Vkz/m278Rj5HU6g+NQcyiu8X2OfAsiSnfGk+Lc1Ne3tSK0HuFArJT3f35ma9F5Iii9tqeVQN5rqdYDSs29X6+RBaTlN9jpIis/nCwjceJHLtqPfTtbUvK8TtRnoWiO1HuhCz4L2xKXJtwXFpaToaksNLB3k9xcHLdKiZzEvRXc7/G5Pk5cfoDtFJdXm9Ajjx6dmU5eZAejLBnNwpjdGL6eOk9bQ38etpFbol9fVdpQHrdhziu49KNP6/mZBMXWcuIoUPeyppLTCaEDeGu9Nii/m0zP9nLR4+Ww/Z1kPj/nKd8vIPSSW8ose6AfEe+8pGXjG2jCKSsqiyPPXhCISM2jz0SSyA7qdZ6wDaFb0Jgbcf/KSNiBl5fTLqlBSgEHxadlqhqyEdPHkHIKiKRr9Rifrpyj+G7/fVk6wkAHBfL6ctYEiz12j+PTrFJemohwKS7gKyT1J70z2wSaYJ5uhVEd6dwPcF77yFCZMWrqPdsSm05WbBZR/9wHl5BdRaEKGSM1fvlkq4E9bdUgkXdVyC4vpX1N8qTEYWVJmPCDvQvqeG+JGXntPU9SFKl4ePnOF/ELPQWOE0ltjvUjxiRX1nb+Zzl3NrQ4I7xBm5ur9Z2oc6Made2Sz4ajstg6jvegEGKMpIQJID11ATpLiM2vaFp1ikh4VQCABI+yCDTIjLTufmmP3vTXBG+ouT/38PBbZdpSnzMfn4NlqYGm2Q6cvU3vsWN65HpBoXUAamQgIq8O2IzwoNjXH4Ly/dtouGqXPvM3YJPf1AILJrwSqhhovzGlLtEjKMDCL9bMxgLCu1qOmawVkmG1wNVWi2z6D5LbDLo/XYMAY993CYLfgWJlHbS0w8gK1HORKzYYsoquQovoDslgk3lBjEAbM3yK8dAs+rrYpJgHC7RYMUheoEkV3ezp7+eYfCggv4rUfVojeVjkEPL8mfRxFdVy+UWD0mMPsQzCmAzlvjXkigHA7fekGPY9N8FfYNlaldQKk4uEjctoMKflsHq1RqrjaANl6rG4qaziksLikXO87DJTz1uOk6GJD4zz3wtuq3GGbjlwQB+W7RbtMGnMtVFsTOB9dsdlUwP7egLAn9z3myWbgzMUbdQNEvWi8P1q56JoBQb+d59N4j720YtdJ0KkaKUEpbWpAYIzfx+KWbIsjbwC7UoM88Wzkwm2k6GZL45fspSy45FXqag816LyAXOHFmNISYXeehpf50vfL5P95d39/QLjN9Y2QTbUbTkedAdl+PJWe6uNEPeduqh0Q7HRFTwdRcTUSvlusYVAFEKgdBbvccDaqEewDSyh/x47GnXtV7mOPuYFkAaDWHDhrEiBZ8LxaYMznwUyObZ4UIPaBUeLlBUZcqDsggUeSZAePcTNCQuD2Lgg4SuFnr1LYmRoIv2XeuqsNCPrq/L/14mIfgfutSWFwIYNhl0Y4bpP3uvwWQEkZlTbk20U7RUJcYChNaRdgg54GIK+oJKTwyQBixRIClbUrNq1ugDyEDRHdjR262mgbUjejPrwWo/5IgtoTpPjUGhF8hDxbs/+s2JCvXXaaBMjGiPMIgh2p++yNT8yG3AfffnCr9AjPXqqjDbkF76MX1AKrjnN/sJclEfWdYnoVbu8/4G3dwL9z8opI0cuBOv64ii5ev2P0mN877xDVunh73BPzsk4i4G2H4JW9rDxlLGIyIAuDokQNDYEHxCmOPxqQ3IJievsHL+rwzRIx7jzMEIcQ2XVW/keMikP2nbhIrYa5UWsEdCoHob6ARNUCCNu9YTxPSDfHS+y9mhSpFxaXkNW6I7KLOgBRRtfYSD0kOrXOkfqDWpjBSUZWn4NttmCDVOa0OEhsMcSNGsImLN4WZ/D72JRsRPqrxGPzO5SoN1J/aMJuUkfqKTVH6hev36bBWBvbDkurQJFyrUh9pRIQx80x2CFFiFYLhS5B5ENhcGf4hNK7nDeCR/TscHcKT7haLbmoP5d1UtIDq6HXOauak3+v8m9dwvNseDn3S8s0ALGn/vM2U0ZuoYizJuViAZwDm7B0n+xsC8QPwVHJVXYOY28IP09PDXCR2KKndaDkkjTbVfQ70zec2o/0gDTZkM3GY1opFnUua4AzpWbflnmo+KJL7JBUKOMgDkhbD3WnkJhUeS7v4NvU7Hx5Ntp9N706ZjnCgQX0GZyWlMy86rksL6U31BBMaNzNTkm21BjuWEM8Z/G3wMSGIprNUKbXdZOL//U+LO9xKl8NCGIPRZcF1BCS0wR9GiKe4AqoTHYaKuMQuLw9F1JjUBNLDeL/97CjRl/A7e1uK26qB6RAMzGoartiUyWSZ6luBF+/FZjf8ac11GGMF1lgTrxD24z0FA2hm+9iVfjhlLUi9Y2722nwRZsaoN+XvvZUe4n/RP/Mh0Y9dHlpU8lL8JjnwccdzDe92d5dCEo+/18AWcJYaxInviZiF/odSqDLBgwkL4aljFMqyZn5akB2HU+T9Lduv/qo66yNtC8+Xb4relBKPeZsErLUQ32tg2Re68MS6frtIoMqhG2Qf+g56jZ7E7WBdLfu50StBrvSR9N8yRWucU3f37lXIql9mYOBeXdHv9+67hSvjNvEZfsk2td9b6DNVvp1dShth5Tk3y02nxiq7dP9UnWaxXyEa27GA/JIyPznyf/RA0j6mgAKbt+Rdrz+CW030xOlHa99DPqIiq5cqwIk5/ARip04g05MmUvxZnrCNEeo5Gae2YaYjbq5GQcIB1WcdnhkZIqAy2I4j/VQo7aI8z0F8N1VORlOQt7W+H+tWWSMzceY3IdkQkvKZAxdKi4tr9eCT6Rfpw0RFxDDnKOjFzINFkBU8qW0RtIX2GlmL9jFNvS9kPIdFe8FkFX7zlAzSwf6zTdcb8SrBQYXsfmEUdM+jnTuSq76mbX/EWqEZ3Gp2eqEneJLO7JEwHn99j2DfWbcKqQvJCq2k/MOjhOG2AZTS64T6+9Mrfo7qYlrnTqMWS5HnxEJGbXOV4LDklJaFBJLbyBCb87ZCCU1RwT+8lcesm59cww8mkQvD3WT2rBW/Zy05iFzwfO3Jq6i+QGRlJN/V+vbmWvDqfXgRZXz1/OtmvBbi75OlJ6dr5HL4roshPZ8Qlfb2QUzf4YykZioTL/zs1mYADM0NiVLHb3PXBsmiT+uf6qJcbzLfly6X44xXbceF4ni/vrMC8J8HOntCavofYD1npLenOBNzwx0kZRFg14L6eP/+qnH1NeO47dXRnuRopsdFu5IfRZsJqv1RyRR2n/+FumLT+xeADBcfakFSOQFatbfhVoOX0wfYZz3NObx3hQf6vDDCmqCOTDvWg5zp9DTVfmy6Wuw9t5O9Pq4lfTBFF+db6vo3Z/X0vs/+1DGzUIdQLrZSu6o5VB3OqWRydUHyHQ9gMzUAUSORfOKqMv0daT41IoCws/p7c//cKLksXpZBUpCT9VfL+sgeum7ZZSSlae3OGATdm9XSF8DbKLWIxfTwVOXqr0XDZXEjG4EYEe77qLLN6qnfzg3N9ptN1n0cZJzlB0xVZnpTQDEAlI/xHZrjfzgPid67iWLvs70zGBXdQpFAPnSViTeZBvCeagGPR3oQ+yCBpjA+5N9pDCuvoAIU5Ky6MVvllCLQS7qQgaVAHKa/CmI9GtQQQlXcrXGYEDaf7sUz28aXIBjULQcJ/PRq2bm9Nqtu/ThVF/ZaAsDo2tlhM2GYwBkIbUb6SEVjpqADLTZUuv3I7nwDQBMWLa/ChCMffj0FdMB4Wxn416O5L3/DE3hGl3s2MH2wZJ5rS8g0j9LICbLpZ+qrCgDLplR6HJWk7pjqAG5bBgQrs2aA5Wo6GxDPy3fL2Czg+C1p3JMU8qB5IweqvBbMFelsowFJCQqhRrAFrAK1QTkUF0B4RrYgPDzwgzWbQ0t7Wm2X8RjAYTbT8sPiK4e67GXU8E0AGqAde/8DZF6xzAWEG6JkK43/rOSLKDv+VyCa4Q/n7Fe7MbR85lGMyM1M58sYGTfHu9NN2Dk+aTTWEB2xKSRAmrv41/9tQE5VQ9A/A4nKs+p70EfLqLmUCe+hxIeCyAMwgcwXs2xwE9nrKOn+jlL6romtWgKIPdgUwbzcWgnazDgsuh1CxjwDyb5yMGXKe1f0/zouWFuFHb2CoVEpxgNyCg+k4dE8kGdlso68xgA4RaKCTWECHKZ5lkNptQZELQrYBQbYD60aj1isVShPw5AuE1iCYSq5XsYp9JvyIHbWNedVFTLmbw+xvLRL1ehbIvh+jNH6jd/s/pshcFnYseCa5t5DQ6wUY1gg9uMWqIunBZAwFOrdZGizvgWgS4FQSXy+Ygq9jIICDdnNphfLKBuszdKoFd/QAoqz6/BuDfHr4ThLXxsgEzjE0vof3a149NyxN3+cfEeKbUxpY113yPG3T80EYCkwe11ppe/X06TYazHuu0C7RYah76/gs15nU8kod753snx5Cwtt7cBtIAUCVrWQFCpz8Fd1lyjQUA4RuBiOF7ozysOKp8BkNWmA8LGtsesjaIKueKRKxMH2219LIBw7MKuq6LTPFoHRvJ1BF6s5awNajfU2NZ73mZqNsiVdselU0hMCtS2CzUBtYVkt0Y80gb0AqSbg15WSd1/20Ab4dJn5GoXdqskZLbfETgHSZId0CW22VshPZqVlwYBkWIAuIDvIHjhGl2PHZXlnqZIiMpPm776sHwzDkadRZ0P+JlpC+Bu1hcQLt3pNH29OAnsvbEaaQ9Xu+kAZ3VFozGNNyBfbeA6qdSsfDArWUpme2MubFe56IOJgzipQ4AUfgLJ0Ky61AIEgIWeufp4bIhmi0O80GqkJzUb6Er7EYDZBhwVd9VYCeHUDEe0HLXmKVUfq68XRnlSc4j1tpjUegHCV+F4F3dCEMou7/2ScvqJo38wzHlLjNE5Or4DyOvifrgFQc/XZNTZ3eYzd9YeU6A9dFXjY3F7awKEmyekoxGY2vbrJTTINlj+bQwgzNB2YGxTRLEn07VrlbZDJXCkzW7mJY0iClMASUYw+PcJ3lJutCeuKvVxDO5ui6Fu9MwQN3XOzVDjC6Qt4V01R7QeotwgtQWGXCDxjx9Xi3cVBLWkifvvDkil2glVp1gawwOrDRCOBwbZVMYbq/fpr4qU72Dkhy/cJsV4moD8BYCcv6qfmZwZ3n/iolyg5DnN9Y/QKl4oKa+gX3gH47d2UF9cS6bv5is/44Toe3CRWedPhXOgmzox5PZyoXgrGOanBy0CP3IfDyCcy+LUiV+oYUAkC8sVdxDTxn30AWKvBoTVhM3Go8LsqUqHQF/j4jguN+JiNQ9lXS3313teED09ZBFN9wkjdzx321ZJrIJmYbF9rQMlOm8KL4iL3FTX6zQbl/KwOmFb1QwB32SvA3JN4RBcembkehjjqSsP0YtspDH3ad6HxJ3VBsSp1jjEhYvPMQZH6VzPxe3X+gSGci0ajPM5mFDrB1yfxQPz+2eVt36YgVz4xTdiY5IrI2MWYY43/v2Lf63BGUfar8KQsiTtO5FOZeUPJWhkNcSMqkZcbDbCnUYjzohOyqzx/nzluUo5bYJH05FVS1db+Z6vKD8HIBsp763wb1tgLx7o2AH2gpipnPg0uFEx/jCHYJmvpVWQSJ0UDiJQ1b2xbBQgzLDIxGs1JhR1Am54GQVyXVlVCM2GlG1AZGIG3VUWYDOTWU1cgztYvbaieuPv+bpzWvZteZuvC3Om9Oi5TC2KupApfd/ATiw1sgia51dQVEonYMO46G9BQCQck0jJQpy6eB2/6T+cu1Vwn45hzJrUprYKvS9263hytvCFnRa+Vn5Hz1108xGu+Uzd3MyAmAExNzMgZkDMzQyIGRBz+zO1/wOXXMEGXM2/6AAAAABJRU5ErkJg"; + // 208x123, transparent background + // String base64CodedString ="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"; + String base64CodedString = "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"; + BufferedImage img = ImageUtil.getImageFromEncodedString(base64CodedString); + File outputfile = new File("c:/temp/image.png"); + ImageIO.write(img, "png", outputfile); + } + + @Test + @Ignore + public void testFromFile() throws IOException { + System.out.println ("testFromFile"); + BufferedImage img = ImageIO.read(new File ("c:/temp/dn_logo_smartteller_transparent.png")); + System.out.println (ImageUtil.getEncodedString(img)); + } + + +} diff --git a/pom.xml b/pom.xml index 85f780a..5d11b7b 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ 4.12 + 1.10.19 1.10 3.3 3.4 @@ -47,13 +48,17 @@ - - + junit junit ${junit.version} - + + + org.mockito + mockito-core + ${mockito.version} + commons-codec @@ -153,7 +158,12 @@ de.muehlencord.shared shared-util ${project.version} - + + + de.muehlencord.shared + shared-jeeutil + ${project.version} +