Gridarta Editor
MapFileTest.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.model.mapmodel;
21 
22 import java.io.File;
23 import org.junit.Assert;
24 import org.junit.Test;
25 
30 public class MapFileTest {
31 
36  @Test
37  public void testNew1() {
38  final MapFile f1 = new MapFile(new File("abc"));
39  Assert.assertEquals(new File("abc"), f1.getMapsDir());
40  Assert.assertEquals("/", f1.getMapPath().toString());
41  }
42 
47  @Test
48  public void testNew2() {
49  final MapFile f1 = new MapFile(new File("abc"));
50  Assert.assertEquals(new File("abc"), f1.getMapsDir());
51  Assert.assertEquals("/", f1.getMapPath().toString());
52 
53  final MapFile f2 = new MapFile(f1, "def");
54  Assert.assertEquals(new File("abc"), f2.getMapsDir());
55  Assert.assertEquals("/def", f2.getMapPath().toString());
56 
57  final MapFile f3 = new MapFile(f2, "ghi");
58  Assert.assertEquals(new File("abc"), f3.getMapsDir());
59  Assert.assertEquals("/def/ghi", f3.getMapPath().toString());
60 
61  final MapFile f4 = new MapFile(f3, "..");
62  Assert.assertEquals(new File("abc"), f4.getMapsDir());
63  Assert.assertEquals("/def", f4.getMapPath().toString());
64 
65  final MapFile f5 = new MapFile(f4, ".");
66  Assert.assertEquals(new File("abc"), f5.getMapsDir());
67  Assert.assertEquals("/def", f5.getMapPath().toString());
68 
69  final MapFile f6 = new MapFile(f5, "..");
70  Assert.assertEquals(new File("abc"), f6.getMapsDir());
71  Assert.assertEquals("/", f6.getMapPath().toString());
72 
73  final MapFile f7 = new MapFile(f6, "..");
74  Assert.assertEquals(new File("abc"), f7.getMapsDir());
75  Assert.assertEquals("/", f7.getMapPath().toString());
76  }
77 
82  @Test
83  public void testNew3() {
84  final MapFile f1 = new MapFile(new File("abc"));
85  Assert.assertEquals(new File("abc"), f1.getMapsDir());
86  Assert.assertEquals("/", f1.getMapPath().toString());
87 
88  final MapFile f2 = new MapFile(f1, MapPathUtils.newMapPath("def/ghi/jkl"));
89  Assert.assertEquals(new File("abc"), f2.getMapsDir());
90  Assert.assertEquals("/def/ghi/jkl", f2.getMapPath().toString());
91 
92  final MapFile f3 = new MapFile(f2, MapPathUtils.newMapPath("../xyz/abc"));
93  Assert.assertEquals(new File("abc"), f3.getMapsDir());
94  Assert.assertEquals("/def/xyz/abc", f3.getMapPath().toString());
95 
96  final MapFile f4 = new MapFile(f3, MapPathUtils.newMapPath("../../../.."));
97  Assert.assertEquals(new File("abc"), f4.getMapsDir());
98  Assert.assertEquals("/", f4.getMapPath().toString());
99 
100  final MapFile f5 = new MapFile(f4, MapPathUtils.newMapPath("xyz/abc"));
101  Assert.assertEquals(new File("abc"), f5.getMapsDir());
102  Assert.assertEquals("/xyz/abc", f5.getMapPath().toString());
103 
104  final MapFile f6 = new MapFile(f5, MapPathUtils.newMapPath("/a/b/c"));
105  Assert.assertEquals(new File("abc"), f6.getMapsDir());
106  Assert.assertEquals("/a/b/c", f6.getMapPath().toString());
107  }
108 
113  @Test
114  public void testGetFile1() {
115  final MapFile f1 = new MapFile(new File("/abc"));
116  Assert.assertEquals(new File("/abc"), f1.getFile());
117 
118  final MapFile f2 = new MapFile(f1, MapPathUtils.newMapPath("def/ghi"));
119  Assert.assertEquals(new File("/abc/def/ghi"), f2.getFile());
120  }
121 
127  @Test
129  final MapFile f1 = new MapFile(new File("/abc"));
130  final MapFile f2 = new MapFile(f1, MapPathUtils.newMapPath("def/ghi/abc"));
131  final MapFile f3 = new MapFile(f1, MapPathUtils.newMapPath("def/abc/xyz"));
132  final MapFile f4 = new MapFile(f1, MapPathUtils.newMapPath("xyz"));
133  Assert.assertEquals(MapPathUtils.newMapPath("../abc/xyz"), f2.getRelativeMapFileTo(f3));
134  Assert.assertEquals(MapPathUtils.newMapPath("../../xyz"), f2.getRelativeMapFileTo(f4));
135  Assert.assertEquals(MapPathUtils.newMapPath("def/ghi/abc"), f4.getRelativeMapFileTo(f2));
136  }
137 
143  @Test(expected = DifferentMapBaseException.class)
145  final MapFile f2 = new MapFile(new MapFile(new File("/abc")), MapPathUtils.newMapPath("def/ghi/abc"));
146  final MapFile f3 = new MapFile(new MapFile(new File("/abC")), MapPathUtils.newMapPath("def/abc/xyz"));
147  f2.getRelativeMapFileTo(f3);
148  }
149 
150 }
net.sf.gridarta.model.mapmodel.MapFile.getRelativeMapFileTo
MapPath getRelativeMapFileTo(@NotNull final MapFile mapFile)
Returns a map path of an another map file relative to this map file.
Definition: MapFile.java:114
net.sf.gridarta.model.mapmodel.DifferentMapBaseException
Thrown if two map files are within different map directories.
Definition: DifferentMapBaseException.java:28
net.sf.gridarta.model.mapmodel.MapFileTest.testNew3
void testNew3()
Checks that creating new instances with MapPath) works as expected.
Definition: MapFileTest.java:83
net.sf.gridarta.model.mapmodel.MapPathUtils.newMapPath
static MapPath newMapPath(@NotNull final String string)
Creates a MapPath instance from string representation.
Definition: MapPathUtils.java:43
net.sf.gridarta.model.mapmodel.MapPathUtils
Utility class for MapPath related functions.
Definition: MapPathUtils.java:28
net.sf.gridarta.model.mapmodel.MapFile.getMapPath
AbsoluteMapPath getMapPath()
Returns the map path within getMapsDir().
Definition: MapFile.java:93
net.sf.gridarta.model.mapmodel.MapFileTest
Regression tests for MapFile.
Definition: MapFileTest.java:30
net.sf.gridarta.model.mapmodel.MapFileTest.testGetFile1
void testGetFile1()
Checks that creating new instances with MapFile#getFile() works as expected.
Definition: MapFileTest.java:114
net.sf.gridarta.model.mapmodel.MapFileTest.testGetRelativeMapFile2
void testGetRelativeMapFile2()
Checks that creating new instances with MapFile#getRelativeMapFileTo(MapFile) works as expected.
Definition: MapFileTest.java:144
net.sf.gridarta.model.mapmodel.MapFile.getMapsDir
File getMapsDir()
Returns the base directory this map file is part of.
Definition: MapFile.java:84
net.sf.gridarta.model.mapmodel.MapFileTest.testNew1
void testNew1()
Checks that creating new instances with MapFile#MapFile(File) works as expected.
Definition: MapFileTest.java:37
net.sf.gridarta.model.mapmodel.MapFile.getFile
File getFile()
Returns a File for this map file.
Definition: MapFile.java:102
net.sf.gridarta.model.mapmodel.AbsoluteMapPath.toString
String toString()
Definition: AbsoluteMapPath.java:117
net.sf.gridarta.model.mapmodel.MapFile
The location of a map file with a map directory.
Definition: MapFile.java:31
net.sf.gridarta.model.mapmodel.MapFileTest.testNew2
void testNew2()
Checks that creating new instances with String) works as expected.
Definition: MapFileTest.java:48
net.sf.gridarta.model.mapmodel.MapFileTest.testGetRelativeMapFile1
void testGetRelativeMapFile1()
Checks that creating new instances with MapFile#getRelativeMapFileTo(MapFile) works as expected.
Definition: MapFileTest.java:128