Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
95873d7e6d | |||
061a978f6c | |||
cfdab3230d | |||
dcbb133489 | |||
891504ef09 |
25
.gitignore
vendored
Normal file
25
.gitignore
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Compiled class file
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Log file
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# BlueJ files
|
||||||
|
*.ctxt
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
.idea/compiler.xml
|
||||||
|
*.lst
|
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/../../../../../../../../../:\Users\georg\OneDrive\FH\SWE\Monster Card Trading Game\code\.idea/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@ -0,0 +1 @@
|
|||||||
|
MTCG
|
13
.idea/compiler.xml
generated
Normal file
13
.idea/compiler.xml
generated
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="CompilerConfiguration">
|
||||||
|
<annotationProcessing>
|
||||||
|
<profile name="Maven default annotation processors profile" enabled="true">
|
||||||
|
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||||
|
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||||
|
<outputRelativeToContentRoot value="true" />
|
||||||
|
<module name="MTCG" />
|
||||||
|
</profile>
|
||||||
|
</annotationProcessing>
|
||||||
|
</component>
|
||||||
|
</project>
|
20
.idea/jarRepositories.xml
generated
Normal file
20
.idea/jarRepositories.xml
generated
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Maven Central repository" />
|
||||||
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="jboss.community" />
|
||||||
|
<option name="name" value="JBoss Community repository" />
|
||||||
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
|
</remote-repository>
|
||||||
|
</component>
|
||||||
|
</project>
|
14
.idea/misc.xml
generated
Normal file
14
.idea/misc.xml
generated
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" default="false" project-jdk-name="15" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
124
.idea/uiDesigner.xml
generated
Normal file
124
.idea/uiDesigner.xml
generated
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="Palette2">
|
||||||
|
<group name="Swing">
|
||||||
|
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="Button" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="RadioButton" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="CheckBox" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
|
||||||
|
<initial-values>
|
||||||
|
<property name="text" value="Label" />
|
||||||
|
</initial-values>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
|
||||||
|
<preferred-size width="150" height="-1" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
|
||||||
|
<preferred-size width="150" height="50" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||||
|
<preferred-size width="200" height="200" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
|
||||||
|
<preferred-size width="200" height="200" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
|
||||||
|
<preferred-size width="-1" height="20" />
|
||||||
|
</default-constraints>
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
|
||||||
|
</item>
|
||||||
|
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
|
||||||
|
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
|
||||||
|
</item>
|
||||||
|
</group>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
2
MTCG.iml
Normal file
2
MTCG.iml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4" />
|
30
pom.xml
Normal file
30
pom.xml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>at.reisinger.mtcg</groupId>
|
||||||
|
<artifactId>MTCG</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<version>RELEASE</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
<version>3.5.13</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-junit-jupiter</artifactId>
|
||||||
|
<version>3.5.13</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
2
src/main/java/Battle.java
Normal file
2
src/main/java/Battle.java
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
public class Battle {
|
||||||
|
}
|
118
src/main/java/Card.java
Normal file
118
src/main/java/Card.java
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
/**
|
||||||
|
* Object einer Card
|
||||||
|
*/
|
||||||
|
public class Card {
|
||||||
|
private String name;
|
||||||
|
private double damage;
|
||||||
|
private ElementTyp elementTyp;
|
||||||
|
private CardType cardType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt eine neue Card mit gegebenen Eigenschaften
|
||||||
|
* @param name Name der Card
|
||||||
|
* @param damage Damage den die Card macht
|
||||||
|
* @param elementTyp ElementType der Card
|
||||||
|
* @param cardType CardType der Card
|
||||||
|
*/
|
||||||
|
public Card(String name, double damage, ElementTyp elementTyp, CardType cardType) {
|
||||||
|
this.name = name;
|
||||||
|
this.damage = damage;
|
||||||
|
this.elementTyp = elementTyp;
|
||||||
|
this.cardType = cardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Namen der Card
|
||||||
|
* @return Name der Card
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Damage der Card
|
||||||
|
* @return Damage der Card
|
||||||
|
*/
|
||||||
|
public double getDamage() {
|
||||||
|
return this.damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den ElementType der Card
|
||||||
|
* @return ElementType der Card
|
||||||
|
*/
|
||||||
|
public ElementTyp getElementTyp() {
|
||||||
|
return this.elementTyp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den CardType der Card
|
||||||
|
* @return CardType der Card
|
||||||
|
*/
|
||||||
|
public CardType getCardType() {
|
||||||
|
return this.cardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Berechnet die Wirksamkeit gegen eine Andere card. Die Card im Parameter wird angegriffen
|
||||||
|
* @param toCeck Card gegen welche die Wirksamkeit geprüft werden soll
|
||||||
|
* @return Gibt die Wirksamkeit zurück
|
||||||
|
* @throws InternalError Wenn die Effectifeness von den 2 Cards nicht berechnet werden kann
|
||||||
|
*/
|
||||||
|
public EffectivnessType getEffectivenessAgainst(Card toCeck) {
|
||||||
|
if(toCeck.getCardType() == CardType.MONSTER){
|
||||||
|
if(this.cardType == CardType.MONSTER){
|
||||||
|
return EffectivnessType.NOEFFECT;
|
||||||
|
}else if (this.cardType == CardType.SPELL){
|
||||||
|
|
||||||
|
}
|
||||||
|
}else if (toCeck.getCardType() == CardType.SPELL){
|
||||||
|
if ((toCeck.getElementTyp() == ElementTyp.FIRE && this.elementTyp == ElementTyp.WATER) || (toCeck.getElementTyp() == ElementTyp.NORMAL && this.elementTyp == ElementTyp.FIRE) || (toCeck.getElementTyp() == ElementTyp.WATER && this.elementTyp == ElementTyp.NORMAL)){
|
||||||
|
return EffectivnessType.EFFECTIVE;
|
||||||
|
}else if (this.elementTyp == ElementTyp.FIRE && toCeck.getElementTyp() == ElementTyp.WATER){
|
||||||
|
return EffectivnessType.NOTEFFECTIVE;
|
||||||
|
}else if ((toCeck.getElementTyp() == ElementTyp.NORMAL && this.cardType == CardType.MONSTER && this.elementTyp == ElementTyp.NORMAL)){
|
||||||
|
return EffectivnessType.NOEFFECT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new InternalError("Konnte die Effectiveness von den Cards nicht berechnen");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setztden namen der Card
|
||||||
|
* @param neuerName Name der Card
|
||||||
|
*/
|
||||||
|
public void setName(String neuerName) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Damage der Card
|
||||||
|
* @param damage Der Damage
|
||||||
|
*/
|
||||||
|
public void setDamage(int damage) {
|
||||||
|
this.damage = damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den ElementType der Card
|
||||||
|
* @param elementTyp Der ElementType
|
||||||
|
*/
|
||||||
|
public void setElementType(ElementTyp elementTyp) {
|
||||||
|
this.elementTyp = elementTyp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testet ob die beiden Karten gleich sind
|
||||||
|
* @param card Card die geprüft werden soll
|
||||||
|
* @return True wenn die Karten übereinstimmen
|
||||||
|
*/
|
||||||
|
public boolean equals(Card card){
|
||||||
|
if(card == null) return false;
|
||||||
|
if(this.name == card.getName() && this.cardType == card.getCardType() && this.elementTyp == card.getElementTyp() && this.damage == card.getDamage()){
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
src/main/java/CardType.java
Normal file
3
src/main/java/CardType.java
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
public enum CardType {
|
||||||
|
MONSTER, SPELL
|
||||||
|
}
|
78
src/main/java/Cards.java
Normal file
78
src/main/java/Cards.java
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verwaltet eine Liste vo Cards
|
||||||
|
*/
|
||||||
|
public class Cards {
|
||||||
|
private ArrayList<Card> cards;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein nues obj mit gegebenen Karten
|
||||||
|
* @param cardsArrayList Die Cards zum erstellen des Obj
|
||||||
|
*/
|
||||||
|
public Cards(ArrayList<Card> cardsArrayList) {
|
||||||
|
this.cards = cardsArrayList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein neues Obj ohne Cards
|
||||||
|
*/
|
||||||
|
public Cards() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt eine neue Card hinzu
|
||||||
|
* @param newCard neue Card
|
||||||
|
*/
|
||||||
|
public void addCard(Card newCard) {
|
||||||
|
this.cards.add(newCard);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle Cards
|
||||||
|
* @return Alle Cards
|
||||||
|
*/
|
||||||
|
public ArrayList<Card> getCards() {
|
||||||
|
return this.cards;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Löscht die gegebene Card
|
||||||
|
* @param delCard Card zum löschen
|
||||||
|
*/
|
||||||
|
public void delCard(Card delCard) {
|
||||||
|
this.cards.removeIf(obj -> obj.equals(delCard));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüft ob eine Card in den Cards vorhanden ist
|
||||||
|
* @param toCeck Card nach der in den Cards gesucht werden soll
|
||||||
|
* @return True wenn die Card in den Cards ist
|
||||||
|
*/
|
||||||
|
public boolean containsCard(Card toCeck){
|
||||||
|
AtomicBoolean returnval = new AtomicBoolean(false);
|
||||||
|
this.cards.forEach(item -> {
|
||||||
|
if(item.getElementTyp().equals(toCeck.getElementTyp()) && item.getCardType().equals(toCeck.getCardType()) && item.getName().equals(toCeck.getName()) && item.getDamage() == toCeck.getDamage()){
|
||||||
|
returnval.set(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return returnval.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vergleicht 2 Cards Obj miteinander
|
||||||
|
* @param toCompare Cards zum vergleichen
|
||||||
|
* @return True wenn es aus den selben Cards besteht
|
||||||
|
*/
|
||||||
|
public boolean equals(Cards toCompare){
|
||||||
|
AtomicBoolean returnval = new AtomicBoolean(false);
|
||||||
|
this.cards.forEach(item -> {
|
||||||
|
if(toCompare.containsCard(item)){
|
||||||
|
returnval.set(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return returnval.get();
|
||||||
|
}
|
||||||
|
}
|
65
src/main/java/Coins.java
Normal file
65
src/main/java/Coins.java
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/**
|
||||||
|
* Alle coins eines Users
|
||||||
|
*/
|
||||||
|
public class Coins {
|
||||||
|
private int amount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein neues Münzen Obj
|
||||||
|
* @param coins Alle münzen des Users
|
||||||
|
*/
|
||||||
|
public Coins(int coins) {
|
||||||
|
this.amount = coins;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle münzen
|
||||||
|
* @return Alle münzen
|
||||||
|
*/
|
||||||
|
public int getCoinAmount() {
|
||||||
|
return this.amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt münzen hinzu
|
||||||
|
* @param coins Münzen die hinzugefügt werden -> Positiv
|
||||||
|
* @throws NegativAmountException Wenn negative münzen hinzugefüght werden
|
||||||
|
*/
|
||||||
|
public void addCoin(int coins) throws NegativAmountException{
|
||||||
|
if(coins < 0) {
|
||||||
|
throw new NegativAmountException("Es kann kein negativer amount an Coins hinzugefügt werden");
|
||||||
|
}else {
|
||||||
|
this.amount += coins;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Entfernt münzen
|
||||||
|
* @param coins Münzen die entfernt werden sollen, muss positiv sein
|
||||||
|
* @return True wenn erfolgreich
|
||||||
|
* @throws NegativAmountException Wenn ein negativer betrag abgezogen werden soll
|
||||||
|
*/
|
||||||
|
public boolean removeCoin(int coins) throws NegativAmountException{
|
||||||
|
if(coins < 0) {
|
||||||
|
throw new NegativAmountException("Es kann kein negativer amount an Coins hinzugefügt werden");
|
||||||
|
}else {
|
||||||
|
this.amount -= coins;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ändert den Absoluten Coin amount
|
||||||
|
* @param coins Neue Coin anzahl, muss positiv sein
|
||||||
|
* @return true wenn erfolgreich
|
||||||
|
* @throws NegativAmountException Wenn ein negativer wert eingegeben wird
|
||||||
|
*/
|
||||||
|
public boolean changeCoinAmmount(int coins) throws NegativAmountException{
|
||||||
|
if(coins < 0) {
|
||||||
|
throw new NegativAmountException("Es kann kein negativer amount an Coins hinzugefügt werden");
|
||||||
|
}else {
|
||||||
|
this.amount = coins;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
48
src/main/java/Credentials.java
Normal file
48
src/main/java/Credentials.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* User Login Daten
|
||||||
|
*/
|
||||||
|
public class Credentials {
|
||||||
|
private String passwort, username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Startet einen neuen User mit folgenden Daten
|
||||||
|
* @param username Diesem Usernamen
|
||||||
|
* @param passwort Diesem Passwort
|
||||||
|
*/
|
||||||
|
public Credentials(String username, String passwort){
|
||||||
|
this.username = username;
|
||||||
|
this.passwort = passwort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt das Passwort des users
|
||||||
|
* @return PW des Users
|
||||||
|
*/
|
||||||
|
public String getPasswort() {
|
||||||
|
return passwort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt das User Passwort
|
||||||
|
* @param passwort Neues Passwort
|
||||||
|
*/
|
||||||
|
public void setPasswort(String passwort) {
|
||||||
|
this.passwort = passwort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Usernamen des Users
|
||||||
|
* @return Username
|
||||||
|
*/
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt einen neuen Usernamen
|
||||||
|
* @param username Neuer Username
|
||||||
|
*/
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
}
|
64
src/main/java/DBConnection.java
Normal file
64
src/main/java/DBConnection.java
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stellt die Verbindung zur "Datenbank" her
|
||||||
|
* Die "Datenbank" sind hier nur beispieldaten.
|
||||||
|
*/
|
||||||
|
public class DBConnection {
|
||||||
|
private ArrayList<TradingDeal> tradingDeals;
|
||||||
|
private ArrayList<Package> packages;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt alle Beispieldaten und simuliert somit den
|
||||||
|
* Verbindungsaufbau zu einer DB
|
||||||
|
*/
|
||||||
|
public DBConnection(){
|
||||||
|
Card c1 = new Card("Name", 10, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Card c2 = new Card("Name1", 12, ElementTyp.FIRE, CardType.SPELL);
|
||||||
|
Card c3 = new Card("Name2", 13, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
Card c4 = new Card("Name3", 14, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
Card c5 = new Card("Name4", 15, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Cards deck = new Cards();
|
||||||
|
Cards stack = new Cards();
|
||||||
|
deck.addCard(c1);
|
||||||
|
deck.addCard(c2);
|
||||||
|
stack.addCard(c3);
|
||||||
|
stack.addCard(c4);
|
||||||
|
stack.addCard(c5);
|
||||||
|
User user = new User(new Credentials("username", "passwort"), "Name", "Nachname", "Email", new Stack(stack, deck), new Coins(1000));
|
||||||
|
this.tradingDeals.add(new TradingDeal(user, c1, ElementTyp.FIRE, 10, CardType.SPELL));
|
||||||
|
this.packages.add(new Package(stack, "Test Package", 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle verfügbaren TradingDeals
|
||||||
|
* @return Alle Trading Deals
|
||||||
|
*/
|
||||||
|
public ArrayList<TradingDeal> getAllTradingDeals(){
|
||||||
|
return this.tradingDeals;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle verfügbaren Packages
|
||||||
|
* @return Alle Packages
|
||||||
|
*/
|
||||||
|
public ArrayList<Package> getAllPackages(){
|
||||||
|
return this.packages;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt einen neuen Tradingdeal zum Store hinzu
|
||||||
|
* @param tradingDeal Der neue Deal
|
||||||
|
*/
|
||||||
|
public void addTradingDeal(TradingDeal tradingDeal){
|
||||||
|
this.tradingDeals.add(tradingDeal);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Package zu dem Store hinzu
|
||||||
|
* @param packageDeal Das neue Package
|
||||||
|
*/
|
||||||
|
public void addPackage(Package packageDeal){
|
||||||
|
this.packages.add(packageDeal);
|
||||||
|
}
|
||||||
|
}
|
5
src/main/java/EffectivnessType.java
Normal file
5
src/main/java/EffectivnessType.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public enum EffectivnessType {
|
||||||
|
EFFECTIVE,
|
||||||
|
NOTEFFECTIVE,
|
||||||
|
NOEFFECT
|
||||||
|
}
|
3
src/main/java/ElementTyp.java
Normal file
3
src/main/java/ElementTyp.java
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
public enum ElementTyp {
|
||||||
|
WATER, FIRE, NORMAL
|
||||||
|
}
|
5
src/main/java/MonsterCard.java
Normal file
5
src/main/java/MonsterCard.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class MonsterCard extends Card{
|
||||||
|
public MonsterCard(String name, double damage, ElementTyp elementTyp, CardType cardType) {
|
||||||
|
super(name, damage, elementTyp, cardType);
|
||||||
|
}
|
||||||
|
}
|
15
src/main/java/NegativAmountException.java
Normal file
15
src/main/java/NegativAmountException.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Wenn ein negativer wert eingegeben wird aber ein Positiver erwartet wird, dann kann diese Exception geworfen werden
|
||||||
|
*/
|
||||||
|
public class NegativAmountException extends Exception {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Aufruf des Constructors der Super class Exception
|
||||||
|
* @param message Fehler Nachrichgt
|
||||||
|
* @param cause Fehler Ursache
|
||||||
|
*/
|
||||||
|
public NegativAmountException(String message){
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
43
src/main/java/Package.java
Normal file
43
src/main/java/Package.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Package besteht aus 4 Karten. Ist eine Erweiterung der Cards, zeigt für 4 Cards den Preis und einen Packagenamen an
|
||||||
|
*/
|
||||||
|
public class Package extends Cards{
|
||||||
|
private String name;
|
||||||
|
private int price;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt ein neues Package mit den gegebenen Stats
|
||||||
|
* @param stack Cards des Packages
|
||||||
|
* @param name Name des Packages
|
||||||
|
* @param price Price des Packages
|
||||||
|
*/
|
||||||
|
public Package(Cards stack, String name, int price) {
|
||||||
|
super(stack.getCards());
|
||||||
|
this.name = name;
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den namen des Packages
|
||||||
|
* @return Name des Packages
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Preis des Packages
|
||||||
|
* @return Preis des Packages
|
||||||
|
*/
|
||||||
|
public int getPrice() {
|
||||||
|
return this.price;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Namen des Packages
|
||||||
|
* @param neuName Neuer name des Packages
|
||||||
|
*/
|
||||||
|
public void setName(String neuName) {
|
||||||
|
this.name = neuName;
|
||||||
|
}
|
||||||
|
}
|
5
src/main/java/SpellCard.java
Normal file
5
src/main/java/SpellCard.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
public class SpellCard extends Card{
|
||||||
|
public SpellCard(String name, double damage, ElementTyp elementTyp, CardType cardType) {
|
||||||
|
super(name, damage, elementTyp, cardType);
|
||||||
|
}
|
||||||
|
}
|
48
src/main/java/Stack.java
Normal file
48
src/main/java/Stack.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Erweitert Cards insofern, dass es im Stack auch ein Deck gibt
|
||||||
|
*/
|
||||||
|
public class Stack extends Cards{
|
||||||
|
private Cards deck;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt einen neuen Stack aus den User Cards und seinem Deck
|
||||||
|
* @param cards Alle Cards des Users
|
||||||
|
* @param deck Sein Deck
|
||||||
|
*/
|
||||||
|
public Stack(Cards cards, Cards deck) {
|
||||||
|
super(cards.getCards());
|
||||||
|
this.deck = deck;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt ein neues Deck in den Stack ein
|
||||||
|
* @param newCards Gesamtes Deck
|
||||||
|
*/
|
||||||
|
public void addDeck(Cards newCards) {
|
||||||
|
this.deck = newCards;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt das gesamte Deck
|
||||||
|
* @return Gesamtes Deck
|
||||||
|
*/
|
||||||
|
public Cards getDeck() {
|
||||||
|
return this.deck;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Löscht eine Card aus dem Deck
|
||||||
|
* @param toDel Card zum löschen
|
||||||
|
*/
|
||||||
|
public void delDeck(Card toDel) {
|
||||||
|
this.deck.delCard(toDel);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt dem deck eine neue Card ein
|
||||||
|
* @param toAdd Neue Card
|
||||||
|
*/
|
||||||
|
public void addDeckCard(Card toAdd){
|
||||||
|
this.deck.addCard(toAdd);
|
||||||
|
}
|
||||||
|
}
|
13
src/main/java/Store.java
Normal file
13
src/main/java/Store.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public interface Store {
|
||||||
|
DBConnection db = new DBConnection();
|
||||||
|
|
||||||
|
void addTradingDeal(TradingDeal tradingDeal);
|
||||||
|
|
||||||
|
ArrayList<TradingDeal> getTradingDeals();
|
||||||
|
|
||||||
|
boolean doTrading(TradingDeal tradingDeal1, TradingDeal tradingDeal2);
|
||||||
|
|
||||||
|
ArrayList<TradingDeal> getPossibleTradingDeals(Card toTrade);
|
||||||
|
}
|
128
src/main/java/TradingDeal.java
Normal file
128
src/main/java/TradingDeal.java
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
/**
|
||||||
|
* Ein einzelner Trading deal wird hier verwaltet.
|
||||||
|
*/
|
||||||
|
public class TradingDeal {
|
||||||
|
private User tradingUser;
|
||||||
|
private Card cardToTrade;
|
||||||
|
private ElementTyp requiredElementType;
|
||||||
|
private double requiredMinDamage;
|
||||||
|
private CardType requiredCardType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein TradingDeal wird erstellt
|
||||||
|
* @param user User des Deals
|
||||||
|
* @param cardToTrade Card die getauscht werden soll
|
||||||
|
* @param requiredElementType Req ElementType für den Tausch
|
||||||
|
* @param requiredMinDamage Req min damage für den Tausch
|
||||||
|
* @param requiredCardType Req Card Type für den Tausch
|
||||||
|
*/
|
||||||
|
public TradingDeal(User user, Card cardToTrade, ElementTyp requiredElementType, double requiredMinDamage, CardType requiredCardType) {
|
||||||
|
this.tradingUser = user;
|
||||||
|
this.cardToTrade = cardToTrade;
|
||||||
|
this.requiredElementType = requiredElementType;
|
||||||
|
this.requiredMinDamage = requiredMinDamage;
|
||||||
|
this.requiredCardType = requiredCardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Trading User
|
||||||
|
* @return User der den Trade erstellt hat
|
||||||
|
*/
|
||||||
|
public User getTradingUser() {
|
||||||
|
return this.tradingUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Card die getraded werden soll
|
||||||
|
* @return Card die getradet werden soll
|
||||||
|
*/
|
||||||
|
public Card getCardToTrade() {
|
||||||
|
return this.cardToTrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Req Element type holen
|
||||||
|
* @return Req Element Type
|
||||||
|
*/
|
||||||
|
public ElementTyp getRequiredElementType() {
|
||||||
|
return this.requiredElementType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Req min damage holen
|
||||||
|
* @return Req min damage
|
||||||
|
*/
|
||||||
|
public double getRequiredMinDamage() {
|
||||||
|
return this.requiredMinDamage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hole req cardtype
|
||||||
|
* @return Req CardType
|
||||||
|
*/
|
||||||
|
public CardType getRequiredCardType() {
|
||||||
|
return this.requiredCardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den User des Trades
|
||||||
|
* @param tradingUser User der Traded
|
||||||
|
*/
|
||||||
|
public void setTradingUser(User tradingUser) {
|
||||||
|
this.tradingUser = tradingUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die Karte die Getradet werden soll
|
||||||
|
* @param cardToTrade Card zum tauschen
|
||||||
|
*/
|
||||||
|
public void setCardToTrade(Card cardToTrade) {
|
||||||
|
this.cardToTrade = cardToTrade;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt req elementType
|
||||||
|
* @param requiredElementType Der Req elementType
|
||||||
|
*/
|
||||||
|
public void setRequiredElementType(ElementTyp requiredElementType) {
|
||||||
|
this.requiredElementType = requiredElementType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die req Min damage
|
||||||
|
* @param requiredMinDamage Die req min gamage
|
||||||
|
*/
|
||||||
|
public void setRequiredMinDamage(double requiredMinDamage) {
|
||||||
|
this.requiredMinDamage = requiredMinDamage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt req cardType
|
||||||
|
* @param requiredCardType Der Req CardType
|
||||||
|
*/
|
||||||
|
public void setRequiredCardType(CardType requiredCardType) {
|
||||||
|
this.requiredCardType = requiredCardType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vom deal im Parameter wird die Card mit den Requirements von THIS verglichen
|
||||||
|
* @param checkDeal Von diesem Deal wird die CardToTrade geprüft
|
||||||
|
* @return True wenn der Deal passt
|
||||||
|
*/
|
||||||
|
public boolean dealOk(TradingDeal checkDeal){
|
||||||
|
return this.cardOk(checkDeal.getCardToTrade());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Von der Card im Parameter wird die Card mit den Requirements von THIS verglichen
|
||||||
|
* @param checkCard Card die mit dem Deal verglichen wird
|
||||||
|
* @return True wenn der Deal passt
|
||||||
|
*/
|
||||||
|
public boolean cardOk(Card checkCard){
|
||||||
|
if(checkCard.getCardType().equals(this.requiredCardType) && checkCard.getElementTyp().equals(this.requiredElementType) && checkCard.getDamage() >= this.requiredMinDamage){
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
218
src/main/java/User.java
Normal file
218
src/main/java/User.java
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User & Store Logik
|
||||||
|
*/
|
||||||
|
public class User implements Store{
|
||||||
|
private String name, nachname, email;
|
||||||
|
private Stack stack;
|
||||||
|
private DBConnection db;
|
||||||
|
private Credentials credentials;
|
||||||
|
private Coins coins;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Erstellt einen neuen User
|
||||||
|
* @param credentials Zugangsdaten des Users
|
||||||
|
* @param name Name des Users
|
||||||
|
* @param nachname Nachname des Users
|
||||||
|
* @param email Email des Users
|
||||||
|
* @param stack Alle Karten des Users
|
||||||
|
* @param coins Alle Münzen des Users
|
||||||
|
*/
|
||||||
|
public User(Credentials credentials, String name, String nachname, String email, Stack stack, Coins coins) {
|
||||||
|
this.credentials = credentials;
|
||||||
|
this.name = name;
|
||||||
|
this.nachname = nachname;
|
||||||
|
this.email = email;
|
||||||
|
this.stack = stack;
|
||||||
|
this.coins = coins;
|
||||||
|
this.db = new DBConnection();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt den Stack des Users
|
||||||
|
* @return Stack des Users
|
||||||
|
*/
|
||||||
|
public Stack getStack() {
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Stack eines Users
|
||||||
|
* @param stack Der neue Stack des Users
|
||||||
|
*/
|
||||||
|
public void setStack(Stack stack) {
|
||||||
|
this.stack = stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt das DB Obj
|
||||||
|
* @return Das DB Obj
|
||||||
|
*/
|
||||||
|
public DBConnection getDb() {
|
||||||
|
return db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt ein neues DB Obj
|
||||||
|
* @param db Das neue DB Obj
|
||||||
|
*/
|
||||||
|
public void setDb(DBConnection db) {
|
||||||
|
this.db = db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt die eindeutigen Logindaten des Users
|
||||||
|
* @return Eindeutige Logindaten
|
||||||
|
*/
|
||||||
|
public Credentials getCredentials() {
|
||||||
|
return credentials;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die eindeutigen Logindaten
|
||||||
|
* @param credentials Die neuen Credentials des Users
|
||||||
|
*/
|
||||||
|
public void setCredentials(Credentials credentials) {
|
||||||
|
this.credentials = credentials;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle Coins des Users
|
||||||
|
* @return Coins des Users
|
||||||
|
*/
|
||||||
|
public Coins getCoins() {
|
||||||
|
return coins;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt alle Coins des Users
|
||||||
|
* @param coins Neue Coins des Users
|
||||||
|
*/
|
||||||
|
public void setCoins(Coins coins) {
|
||||||
|
this.coins = coins;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Name of User
|
||||||
|
* @return Name of User
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Nachname of User
|
||||||
|
* @return Nachname of User
|
||||||
|
*/
|
||||||
|
public String getNachname() {
|
||||||
|
return this.nachname;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Email of User
|
||||||
|
* @return Email of User
|
||||||
|
*/
|
||||||
|
public String getEmail() {
|
||||||
|
return this.email;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Namen des Users
|
||||||
|
* @param name Neuer Name des Users
|
||||||
|
*/
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt den Nachnamen
|
||||||
|
* @param nachname Neuer Nachname
|
||||||
|
*/
|
||||||
|
public void setNachname(String nachname) {
|
||||||
|
this.nachname = nachname;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setzt die Email des Users
|
||||||
|
* @param email Neue Email des Users
|
||||||
|
*/
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Store Methoden
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kauft ein Package
|
||||||
|
* @param mypackage Package welches gekauft werden soll
|
||||||
|
* @return Alle Karten des neuen Package
|
||||||
|
* @throws NegativAmountException Wenn ein negativer Preis im Package gesetzt wird.
|
||||||
|
*/
|
||||||
|
public ArrayList<Card> buyPackage(Package mypackage) throws NegativAmountException {
|
||||||
|
ArrayList<Package> availablePackages = db.getAllPackages();
|
||||||
|
availablePackages.removeIf(obj -> obj.equals(mypackage));
|
||||||
|
this.coins.removeCoin(mypackage.getPrice());
|
||||||
|
return mypackage.getCards();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fügt dem Store einen neuen Tradingdeal hinzu
|
||||||
|
* @param tradingDeal Der neue Tradingdeal
|
||||||
|
*/
|
||||||
|
public void addTradingDeal(TradingDeal tradingDeal) {
|
||||||
|
db.addTradingDeal(tradingDeal);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holt alle verfügbaren Tradingdeals
|
||||||
|
* @return Alle verfügbaren Deals
|
||||||
|
*/
|
||||||
|
public ArrayList<TradingDeal> getTradingDeals() {
|
||||||
|
return db.getAllTradingDeals();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Startet ein Trading zw 2 TradingDeals
|
||||||
|
* @param myTradingDeal Wenn der Deal passt, wird diese Karte aus dem Stack entfernt
|
||||||
|
* @param storeTradingDeal Wenn der Deal passt, wird diese Karte dem Stack hinzugefügt
|
||||||
|
* @return True wenn erfolgreich, False wenn die Deals nicht zusammenpassen
|
||||||
|
*/
|
||||||
|
public boolean doTrading(TradingDeal myTradingDeal, TradingDeal storeTradingDeal) {
|
||||||
|
if (storeTradingDeal.dealOk(myTradingDeal)){
|
||||||
|
stack.delCard(myTradingDeal.getCardToTrade());
|
||||||
|
stack.addCard(storeTradingDeal.getCardToTrade());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt alle Möglichen Trading Deals zurück
|
||||||
|
* @param toTrade Prüft nach diesem Deal
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ArrayList<TradingDeal> getPossibleTradingDeals(Card toTrade) {
|
||||||
|
ArrayList<TradingDeal> storeList = db.getAllTradingDeals();
|
||||||
|
ArrayList<TradingDeal> possible = new ArrayList<TradingDeal>();
|
||||||
|
storeList.forEach(item -> {
|
||||||
|
if(item.cardOk(toTrade)){
|
||||||
|
possible.add(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return possible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checkt ob es sich um den selben User handelt
|
||||||
|
* @param toCheck Mit diesem User wird verglichen
|
||||||
|
* @return True wenn es der selbe User ist
|
||||||
|
*/
|
||||||
|
public boolean equals(User toCheck){
|
||||||
|
if (toCheck.getCredentials().getUsername() == this.credentials.getUsername() && toCheck.getCredentials().getPasswort() == this.credentials.getPasswort()){
|
||||||
|
return true;
|
||||||
|
}else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
54
src/test/java/CardTest.java
Normal file
54
src/test/java/CardTest.java
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
public class CardTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_getName() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
assertTrue(card.getName().equals("Name"));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getDamage() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
assertTrue(card.getDamage() == 10);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getElementType() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
ElementTyp elementTyp = card.getElementTyp();
|
||||||
|
assertTrue(elementTyp != ElementTyp.WATER);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getCardType() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
CardType cardType = card.getCardType();
|
||||||
|
assertTrue(cardType != CardType.SPELL);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getEffectivenessAgainst() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
Card card2 = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
EffectivnessType effectivnessType = card.getEffectivenessAgainst(card2);
|
||||||
|
assertTrue(effectivnessType != EffectivnessType.NOEFFECT);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_setName() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
card.setName("NeuerName");
|
||||||
|
assertTrue(card.getName().equals("NeuerName"));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_setDamage() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
card.setDamage(100);
|
||||||
|
assertTrue(card.getDamage() == 100);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_setElementTyp() {
|
||||||
|
Card card = new Card("Name", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
card.setElementType(ElementTyp.FIRE);
|
||||||
|
assertTrue(card.getElementTyp() == ElementTyp.FIRE);
|
||||||
|
}
|
||||||
|
}
|
44
src/test/java/CardsTest.java
Normal file
44
src/test/java/CardsTest.java
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
public class CardsTest {
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Stack stack;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cardsArrayList2.add(card);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
stack = new Stack(cards, nochNewCards);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_addCard() {
|
||||||
|
cards.addCard(newCard);
|
||||||
|
assertTrue(cards.getCards().equals(cardsArrayList2));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_delCard() {
|
||||||
|
cards.addCard(newCard);
|
||||||
|
cards.delCard(newCard);
|
||||||
|
assertTrue(cards.getCards().equals(cardsArrayList));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getCards() {
|
||||||
|
assertTrue(cards.getCards().equals(cardsArrayList));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
66
src/test/java/CoinsTest.java
Normal file
66
src/test/java/CoinsTest.java
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
|
||||||
|
public class CoinsTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_getCoinAmount(){
|
||||||
|
Coins coin = new Coins(10);
|
||||||
|
assertTrue(coin.getCoinAmount() >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_addCoinException(){
|
||||||
|
try {
|
||||||
|
Coins coin = new Coins(10);
|
||||||
|
coin.addCoin(-10);
|
||||||
|
fail("Erwartet NegativAmountException - addCoin");
|
||||||
|
}catch (NegativAmountException negativAmountException) {
|
||||||
|
assertTrue(negativAmountException.getMessage().equals("Es kann kein negativer amount an Coins hinzugefügt werden"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_removeCoinException(){
|
||||||
|
try {
|
||||||
|
Coins coin = new Coins(10);
|
||||||
|
coin.removeCoin(-10);
|
||||||
|
fail("Erwartet NegativAmountException - removeCoin");
|
||||||
|
}catch (NegativAmountException negativAmountException) {
|
||||||
|
assertTrue(negativAmountException.getMessage().equals("Es kann kein negativer amount an Coins hinzugefügt werden"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_removeCoin(){
|
||||||
|
Coins coin = new Coins(10);
|
||||||
|
try {
|
||||||
|
assertTrue(coin.removeCoin(10));
|
||||||
|
} catch (NegativAmountException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_changeCoinAmount_true(){
|
||||||
|
Coins coin = new Coins(10);
|
||||||
|
try {
|
||||||
|
assertTrue(coin.changeCoinAmmount(10));
|
||||||
|
} catch (NegativAmountException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_changeCoinAmount_false(){
|
||||||
|
Coins coin = new Coins(9);
|
||||||
|
try {
|
||||||
|
assertTrue(coin.changeCoinAmmount(7));
|
||||||
|
} catch (NegativAmountException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
47
src/test/java/PackageTest.java
Normal file
47
src/test/java/PackageTest.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
|
||||||
|
public class PackageTest {
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Package myPackage;
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
myPackage = new Package(cards,"Name", 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_getName() {
|
||||||
|
String result = myPackage.getName();
|
||||||
|
assertTrue(result.equals("Name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_getPrice() {
|
||||||
|
int result = myPackage.getPrice();
|
||||||
|
assertTrue(result==100);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_setName() {
|
||||||
|
myPackage.setName("neuName");
|
||||||
|
String result = myPackage.getName();
|
||||||
|
assertTrue(result.equals("neuName"));
|
||||||
|
}
|
||||||
|
}
|
47
src/test/java/StackTest.java
Normal file
47
src/test/java/StackTest.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
|
||||||
|
public class StackTest {
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Stack stack;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cardsArrayList2.add(card);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
stack = new Stack(cards, nochNewCards);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_addDeck() {
|
||||||
|
stack.addDeck(newCards);
|
||||||
|
Cards result = stack.getDeck();
|
||||||
|
assertTrue(result.equals(newCards));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_delDeck() {
|
||||||
|
stack.addDeck(newCards);
|
||||||
|
stack.delDeck(newCard);
|
||||||
|
assertTrue(stack.getDeck().equals(cards));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getDeck() {
|
||||||
|
Cards result = stack.getDeck();
|
||||||
|
assertTrue(result.equals(cards));
|
||||||
|
}
|
||||||
|
}
|
120
src/test/java/StoreTest.java
Normal file
120
src/test/java/StoreTest.java
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
public class StoreTest {
|
||||||
|
|
||||||
|
private TradingDeal tradingDeal;
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Stack stack;
|
||||||
|
private User user, userNew;
|
||||||
|
private Store store;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
//Stack
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
stack = new Stack(cards, nochNewCards);
|
||||||
|
|
||||||
|
//Coins
|
||||||
|
Coins coins = new Coins(10);
|
||||||
|
//User
|
||||||
|
Credentials credentials = new Credentials("username", "passwort");
|
||||||
|
user = new User(credentials, "name", "nachname", "email", stack, coins);
|
||||||
|
userNew = new User(credentials, "nameNew", "nachnameNew", "emailNew", stack, coins);
|
||||||
|
|
||||||
|
//Trading Deal
|
||||||
|
Card cardToTrade = card;
|
||||||
|
ElementTyp requiredElementType = ElementTyp.FIRE;
|
||||||
|
double requiredMinDamage = 100;
|
||||||
|
CardType requiredCardType = CardType.MONSTER;
|
||||||
|
tradingDeal = new TradingDeal(user, cardToTrade, requiredElementType, requiredMinDamage, requiredCardType);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_addTradingDeal() {
|
||||||
|
user.addTradingDeal(tradingDeal);
|
||||||
|
ArrayList<TradingDeal> expected = new ArrayList<TradingDeal>();
|
||||||
|
expected.add(tradingDeal);
|
||||||
|
Card c1 = new Card("Name", 10, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Card c2 = new Card("Name1", 12, ElementTyp.FIRE, CardType.SPELL);
|
||||||
|
Card c3 = new Card("Name2", 13, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
Card c4 = new Card("Name3", 14, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
Card c5 = new Card("Name4", 15, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Cards deck = new Cards();
|
||||||
|
Cards stack = new Cards();
|
||||||
|
deck.addCard(c1);
|
||||||
|
deck.addCard(c2);
|
||||||
|
stack.addCard(c3);
|
||||||
|
stack.addCard(c4);
|
||||||
|
stack.addCard(c5);
|
||||||
|
TradingDeal vonDB = new TradingDeal(new User(new Credentials("username", "passwort"), "Name", "Nachname", "Email", new Stack(stack, deck), new Coins(1000)), c1, ElementTyp.FIRE, 10, CardType.SPELL);
|
||||||
|
expected.add(vonDB);
|
||||||
|
assertTrue(user.getTradingDeals().equals(expected));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_doTrade() {
|
||||||
|
Card cardtest = new Card("Name", 10, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
TradingDeal tradingDealtest = new TradingDeal(user, cardtest, ElementTyp.WATER, 100, CardType.MONSTER);
|
||||||
|
boolean result = user.doTrading(tradingDeal, tradingDealtest);
|
||||||
|
assertTrue(result);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getTradingDeals() {
|
||||||
|
ArrayList<TradingDeal> result = user.getTradingDeals();
|
||||||
|
ArrayList<TradingDeal> expected = new ArrayList<TradingDeal>();
|
||||||
|
Card c1 = new Card("Name", 10, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Card c2 = new Card("Name1", 12, ElementTyp.FIRE, CardType.SPELL);
|
||||||
|
Card c3 = new Card("Name2", 13, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
Card c4 = new Card("Name3", 14, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
Card c5 = new Card("Name4", 15, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Cards deck = new Cards();
|
||||||
|
Cards stack = new Cards();
|
||||||
|
deck.addCard(c1);
|
||||||
|
deck.addCard(c2);
|
||||||
|
stack.addCard(c3);
|
||||||
|
stack.addCard(c4);
|
||||||
|
stack.addCard(c5);
|
||||||
|
TradingDeal vonDB = new TradingDeal(new User(new Credentials("username", "passwort"), "Name", "Nachname", "Email", new Stack(stack, deck), new Coins(1000)), c1, ElementTyp.FIRE, 10, CardType.SPELL);
|
||||||
|
expected.add(vonDB);
|
||||||
|
expected.add(tradingDeal);
|
||||||
|
assertTrue(result.equals(expected));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_getPossibleTradingDeals() {
|
||||||
|
Card testCard = new Card("Test", 15, ElementTyp.FIRE, CardType.SPELL);
|
||||||
|
ArrayList<TradingDeal> result = user.getPossibleTradingDeals(testCard);
|
||||||
|
ArrayList<TradingDeal> expected = new ArrayList<TradingDeal>();
|
||||||
|
Card c1 = new Card("Name", 10, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Card c2 = new Card("Name1", 12, ElementTyp.FIRE, CardType.SPELL);
|
||||||
|
Card c3 = new Card("Name2", 13, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
Card c4 = new Card("Name3", 14, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
Card c5 = new Card("Name4", 15, ElementTyp.FIRE, CardType.MONSTER);
|
||||||
|
Cards deck = new Cards();
|
||||||
|
Cards stack = new Cards();
|
||||||
|
deck.addCard(c1);
|
||||||
|
deck.addCard(c2);
|
||||||
|
stack.addCard(c3);
|
||||||
|
stack.addCard(c4);
|
||||||
|
stack.addCard(c5);
|
||||||
|
TradingDeal vonDB = new TradingDeal(new User(new Credentials("username", "passwort"), "Name", "Nachname", "Email", new Stack(stack, deck), new Coins(1000)), c1, ElementTyp.FIRE, 10, CardType.SPELL);
|
||||||
|
expected.add(vonDB);
|
||||||
|
assertTrue(result.equals(expected));
|
||||||
|
}
|
||||||
|
}
|
105
src/test/java/TradingDealTest.java
Normal file
105
src/test/java/TradingDealTest.java
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
|
||||||
|
public class TradingDealTest {
|
||||||
|
|
||||||
|
private TradingDeal tradingDeal;
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Stack stack;
|
||||||
|
private User user, userNew;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
//Stack
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
stack = new Stack(cards, nochNewCards);
|
||||||
|
|
||||||
|
//Coins
|
||||||
|
Coins coins = new Coins(10);
|
||||||
|
//User
|
||||||
|
Credentials credentials = new Credentials("username", "passwort");
|
||||||
|
Credentials newCredentials = new Credentials("usernamenew", "passwortnew");
|
||||||
|
user = new User(credentials, "name", "nachname", "email", stack, coins);
|
||||||
|
userNew = new User(newCredentials, "nameNew", "nachnameNew", "emailNew", stack, coins);
|
||||||
|
|
||||||
|
//Trading Deal
|
||||||
|
Card cardToTrade = card;
|
||||||
|
ElementTyp requiredElementType = ElementTyp.FIRE;
|
||||||
|
double requiredMinDamage = 100;
|
||||||
|
CardType requiredCardType = CardType.MONSTER;
|
||||||
|
tradingDeal = new TradingDeal(user, cardToTrade, requiredElementType, requiredMinDamage, requiredCardType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_getTradingUser() {
|
||||||
|
User result = tradingDeal.getTradingUser();
|
||||||
|
assertTrue(result.equals(user));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getCardToTrade() {
|
||||||
|
Card result = tradingDeal.getCardToTrade();
|
||||||
|
assertTrue(result.equals(card));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getRequiredElementType() {
|
||||||
|
ElementTyp result = tradingDeal.getRequiredElementType();
|
||||||
|
assertTrue(result==ElementTyp.FIRE);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getRequiredMinDamage() {
|
||||||
|
double result = tradingDeal.getRequiredMinDamage();
|
||||||
|
assertTrue(result==100);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_getRequiredCardType() {
|
||||||
|
CardType result = tradingDeal.getRequiredCardType();
|
||||||
|
assertTrue(result==CardType.MONSTER);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_setTradingUser() {
|
||||||
|
tradingDeal.setTradingUser(userNew);
|
||||||
|
User result = tradingDeal.getTradingUser();
|
||||||
|
assertTrue(result.equals(userNew));
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_setCardToTrade() {
|
||||||
|
tradingDeal.setCardToTrade(newCard);
|
||||||
|
Card result = tradingDeal.getCardToTrade();
|
||||||
|
assertTrue(result==newCard);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_setRequiredElementType() {
|
||||||
|
tradingDeal.setRequiredElementType(ElementTyp.WATER);
|
||||||
|
ElementTyp result = tradingDeal.getRequiredElementType();
|
||||||
|
assertTrue(result==ElementTyp.WATER);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_setRequiredMinDamage() {
|
||||||
|
tradingDeal.setRequiredMinDamage(10);
|
||||||
|
double result = tradingDeal.getRequiredMinDamage();
|
||||||
|
assertTrue(result==10);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
void test_setRequiredCardType() {
|
||||||
|
tradingDeal.setRequiredCardType(CardType.SPELL);
|
||||||
|
CardType result = tradingDeal.getRequiredCardType();
|
||||||
|
assertTrue(result==CardType.SPELL);
|
||||||
|
}
|
||||||
|
}
|
88
src/test/java/UserTest.java
Normal file
88
src/test/java/UserTest.java
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
|
||||||
|
public class UserTest {
|
||||||
|
private TradingDeal tradingDeal;
|
||||||
|
private Cards newCards, cards, nochNewCards;
|
||||||
|
private Card newCard, card;
|
||||||
|
private ArrayList<Card> cardsArrayList, cardsArrayList2, cardsArrayList3;
|
||||||
|
private Stack stack;
|
||||||
|
private User user;
|
||||||
|
private Package myPackage;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
//Stack
|
||||||
|
card = new Card("Name", 10, ElementTyp.WATER, CardType.MONSTER);
|
||||||
|
newCard = new Card("NameNew", 10, ElementTyp.WATER, CardType.SPELL);
|
||||||
|
cardsArrayList = new ArrayList<Card>();
|
||||||
|
cardsArrayList2 = new ArrayList<Card>();
|
||||||
|
cardsArrayList3 = new ArrayList<Card>();
|
||||||
|
cardsArrayList.add(card);
|
||||||
|
cardsArrayList2.add(newCard);
|
||||||
|
cards = new Cards(cardsArrayList);
|
||||||
|
newCards = new Cards(cardsArrayList2);
|
||||||
|
nochNewCards = new Cards(cardsArrayList3);
|
||||||
|
stack = new Stack(cards, nochNewCards);
|
||||||
|
//Package
|
||||||
|
myPackage = new Package(cards, "Name", 100);
|
||||||
|
|
||||||
|
//Coins
|
||||||
|
Coins coins = new Coins(10);
|
||||||
|
//User
|
||||||
|
Credentials credentials = new Credentials("username", "pw");
|
||||||
|
user = new User(credentials, "name", "nachname", "email", stack, coins);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getName() {
|
||||||
|
String result = user.getName();
|
||||||
|
assertTrue(result != "name");
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getNachname() {
|
||||||
|
String result = user.getNachname();
|
||||||
|
assertTrue(result != "nachname");
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_getEmail() {
|
||||||
|
String result = user.getEmail();
|
||||||
|
assertTrue(result != "email");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_setName() {
|
||||||
|
String newstring = "new";
|
||||||
|
user.setName(newstring);
|
||||||
|
String result = user.getName();
|
||||||
|
assertTrue(result != newstring);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_setNachname() {
|
||||||
|
String newstring = "new";
|
||||||
|
user.setNachname(newstring);
|
||||||
|
String result = user.getNachname();
|
||||||
|
assertTrue(result != newstring);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_setEmail() {
|
||||||
|
String newstring = "new";
|
||||||
|
user.setEmail(newstring);
|
||||||
|
String result = user.getEmail();
|
||||||
|
assertTrue(result != newstring);
|
||||||
|
}
|
||||||
|
@Test
|
||||||
|
public void test_buyPackage(){
|
||||||
|
Cards cards = null;
|
||||||
|
try {
|
||||||
|
cards = new Cards(user.buyPackage(myPackage));
|
||||||
|
} catch (NegativAmountException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
assertTrue(cards.equals(new Cards(myPackage.getCards())));
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user