Ich weis nicht woran es liegt das die Junittests bis auf einen nicht gehen?? (leerstring geht)
ich hab die einzelnen methoden wie gettitel, getautor , slashanalyse ausprobiert sprich ich hab
nen neuen string erzeugt und hab da den pfad (d:\\abc\\rock.mp3) eingeben hat alles wunderbar funktioniert.
vielleicht findet ja jemand den fehler wenn er es bei eclipse mal rein kopiert
hab schon ein paar mal durchgeschaut ob ich den fehler find aber erfolglos :noe:
naja wäre ganz cool. Sowas ist immer eine drecksarbeit so was zu suchen darum bin ich auch net böse wenn keiner sich die mühe macht
Junittests
import static org.junit.Assert.*;
import org.junit.Test;
public class UTestAudioFile {
@Test
public void testParsePathname() {
AudioFile af = new AudioFile();
af.parsePathname("Test.mp3");
assertEquals("Pfadname inkorrekt",
"Test.mp3", af.getPathname());
assertEquals ("Dateiname inkorrekt",
"Test.mp3", af.getFilename());
}
@Test
public void testLeererString(){
AudioFile af = new AudioFile();
af.parsePathname("");
assertEquals("Pfadname inkorrekt",
"", af.getPathname());
assertEquals ("Dateiname inkorrekt",
"", af.getFilename());
}
@Test
public void testWhiteSpace() {
AudioFile af = new AudioFile();
String s = " ";
af.parsePathname(s);
assertEquals("Pfadname inkorrekt",
s, af.getPathname());
assertEquals("Dateiname inkorrekt",
s, af.getFilename());
}
@Test
public void testSlashes() {
AudioFile af = new AudioFile();
String s = "d:\\ Programme\\ file.mp3";
af.parsePathname(s);
assertEquals("Pfadname inkorrekt",
"\\ d:\\ Programme\\ file.mp3", af.getPathname());
assertEquals("Dateiname inkorrekt",
"file.mp3", af.getFilename());
}
@Test
public void test_parseFilename_38() {
AudioFile af = new AudioFile();
af.parsePathname("\\ tmp\\ test\\ A.U.T.O.R - T.I.T.E.L .EXTENSION");
af.parseFilename(af.getFilename());
assertEquals("Filename stored incorrectly",
"A.U.T.O.R - T.I.T.E.L .EXTENSION",
af.getFilename());
assertEquals("Autor stored incorrectly","A.U.T.O.R",af.getAutor());
assertEquals("Titel stored incorrectly","T.I.T.E.L",af.getTitel());
}
}
Programm
public class AudioFile {
private String pathname = "", filename="", autorstring ="",titelstring="";
public AudioFile() {
getPathname();
getFilename() ;
getAutor() ;
getTitel() ;
}
private static boolean isWindows(){ //erkennt WINDOWS
return System.getProperty("os.name").toLowerCase().indexOf("win")>=0;}
public void parsePathname(String s) {
if (s.trim().equals("")) {
pathname = s;
filename = s;
}
else {
pathname = s.trim();
filename = s.trim();
}
//---------------------
// slashanalyse
//---------------------
String korrekt1=new String(); //erzeugt einen neuen String in den später etwas geschrieben wird
//---------------------
//WINDOWS-Pfad
//---------------------
if(isWindows()==true){
//Variablen
int slash,länge;
char sepchar= java.io.File.separatorChar;
korrekt1=s.replaceAll("\\\\+", "\\\\");// backslash durch sepchar für plattformunabhängigkeit
slash= korrekt1.lastIndexOf(sepchar)+1;// ermittelt index von letzen slash
System.out.println("slash:"+slash);
länge= korrekt1.length();
System.out.println("länge:"+länge);
if(slash==länge)
filename = "";
pathname =korrekt1;
}
//---------------------
//LINUX-Pfad
//---------------------
else{
int slash2,länge2,doppelpunkt;
char sepchar2= java.io.File.separatorChar;
korrekt1=s.replace('/', '\\'); //wandelt / in \\ um
//System.out.println("korrekt:"+korrekt1);
korrekt1=korrekt1.replaceAll("\\\\+", "\\\\"); // macht aus mehreren einen String
slash2= korrekt1.lastIndexOf('\\')+1; // ermittelt index von letzen slash +1 wegen start=0
//System.out.println("slash:"+slash2);
länge2= korrekt1.length();
//System.out.println("länge:"+länge2);
korrekt1 =korrekt1.replace('\\', '/');
if(slash2==länge2)
filename = "";
doppelpunkt=korrekt1.lastIndexOf(":"); //ermittelt den doppelpunkt
if(doppelpunkt!=-1){
korrekt1=korrekt1.replace(":",""); //löscht den doppelpunkt
korrekt1="/"+korrekt1; // fügt vor das "d" den slash ein
}
pathname =korrekt1; // weist dem pfadnamen zu
}
//--------------------------
// ENDE der SLASH - analyse
//--------------------------
//---------------------
// getparsepathname
//---------------------
//Variable
int laenge;
int wert=0;
char sepchar1 =java.io.File.separatorChar;
laenge= pathname.length(); //ermittelt Länge des strings
wert = pathname.lastIndexOf(sepchar1); //ermittelt letzten slash
wert+=1;
//string splitten
filename=pathname.substring(wert, laenge);// von letztem slash bis ende string = Filename
pathname=pathname.substring(0, wert); // von index 0 bis letzten slash = Pathname
}
public void parseFilename(String s){
String string_1= getFilename(); // ruf methode getfilname auf diese gibt den filename zurückund weist ihn string_1 zu
//-----------------------
//gettitel
//-----------------------
int strich,punkt,strichleer;
int laenge;
laenge=string_1.length(); // ermittelt anfang von stringlänge
strich= string_1.lastIndexOf('-');// ermittelt anfang von strich
punkt=string_1.lastIndexOf('.'); // ermittelt anfang von punkt
string_1= string_1.trim();
if(strich==-1){ // Fall KEIN STRICH
if(punkt==0){ //1.Fall ".mp3" kein Titel kein Autor ohne strich
titelstring="";
//System.out.println("");// gibt leeren string zurück
}
else{ //2.Fall kein Autor aber Titel ohne Strich
titelstring= string_1.substring(0, punkt-1);
}
}
else { // Fall MIT STRICH
if (strich==0){ //3.Fall "-"
titelstring="-";
//System.out.println("Titel:"+titelstring);
}
else{
titelstring= string_1.trim();
strichleer=string_1.lastIndexOf('-');
if (strichleer==0){ //4.Fall ' - ' Strich mit leer
titelstring ="";
//System.out.println("leer");
}
else{
titelstring= string_1.substring(strich+1, punkt-1);
titelstring= titelstring.trim();
//System.out.println("Titel:"+titelstring);
}
}
}
//-----------------------
//getautor
//-----------------------
String autor= getFilename(); //autor ruft methode auf und erhält den filename
//Variablen
int strich1,strichleer1;
autorstring=autor; //weist den string autorstring zu
strich1= autorstring.lastIndexOf("-");// ermittelt anfang von strich
strichleer1=autorstring.lastIndexOf(" - ");// ermittelt den string
// Fall KEIN STRICH
if(strich1==-1){
autorstring="";
}
else { // Fall MIT STRICH
if (strich1==0){
autorstring=""; //Fall mit nur einem Strich
}
if (strichleer1==0){
autorstring="";
}
if(strichleer1 !=0 && strichleer1 !=-1){
autorstring=autorstring.trim();
strichleer1=autorstring.lastIndexOf(" - ");// ermittelt den string
autorstring=autorstring.substring(0, strichleer1);//splittet den string von anfang bis " - "
autorstring=autorstring.trim();
}
}
//System.out.println("Autor:"+autorstring);
//System.out.println("strich:"+strich);
//System.out.println("strichlee:"+strichleer);
//System.out.println("autoranfang:"+autor);
}
public String getPathname() {return pathname;}
public String getFilename() {return filename;}
public String getAutor() {return autorstring;}
public String getTitel() {return titelstring;}
public String toString(){
String newstring = null;
if(autorstring.isEmpty()){
newstring = titelstring;
}
else
newstring= autorstring +" - "+titelstring;
return newstring;
}
}
ich hab die einzelnen methoden wie gettitel, getautor , slashanalyse ausprobiert sprich ich hab
nen neuen string erzeugt und hab da den pfad (d:\\abc\\rock.mp3) eingeben hat alles wunderbar funktioniert.
vielleicht findet ja jemand den fehler wenn er es bei eclipse mal rein kopiert
hab schon ein paar mal durchgeschaut ob ich den fehler find aber erfolglos :noe:
naja wäre ganz cool. Sowas ist immer eine drecksarbeit so was zu suchen darum bin ich auch net böse wenn keiner sich die mühe macht
Junittests
import static org.junit.Assert.*;
import org.junit.Test;
public class UTestAudioFile {
@Test
public void testParsePathname() {
AudioFile af = new AudioFile();
af.parsePathname("Test.mp3");
assertEquals("Pfadname inkorrekt",
"Test.mp3", af.getPathname());
assertEquals ("Dateiname inkorrekt",
"Test.mp3", af.getFilename());
}
@Test
public void testLeererString(){
AudioFile af = new AudioFile();
af.parsePathname("");
assertEquals("Pfadname inkorrekt",
"", af.getPathname());
assertEquals ("Dateiname inkorrekt",
"", af.getFilename());
}
@Test
public void testWhiteSpace() {
AudioFile af = new AudioFile();
String s = " ";
af.parsePathname(s);
assertEquals("Pfadname inkorrekt",
s, af.getPathname());
assertEquals("Dateiname inkorrekt",
s, af.getFilename());
}
@Test
public void testSlashes() {
AudioFile af = new AudioFile();
String s = "d:\\ Programme\\ file.mp3";
af.parsePathname(s);
assertEquals("Pfadname inkorrekt",
"\\ d:\\ Programme\\ file.mp3", af.getPathname());
assertEquals("Dateiname inkorrekt",
"file.mp3", af.getFilename());
}
@Test
public void test_parseFilename_38() {
AudioFile af = new AudioFile();
af.parsePathname("\\ tmp\\ test\\ A.U.T.O.R - T.I.T.E.L .EXTENSION");
af.parseFilename(af.getFilename());
assertEquals("Filename stored incorrectly",
"A.U.T.O.R - T.I.T.E.L .EXTENSION",
af.getFilename());
assertEquals("Autor stored incorrectly","A.U.T.O.R",af.getAutor());
assertEquals("Titel stored incorrectly","T.I.T.E.L",af.getTitel());
}
}
Programm
public class AudioFile {
private String pathname = "", filename="", autorstring ="",titelstring="";
public AudioFile() {
getPathname();
getFilename() ;
getAutor() ;
getTitel() ;
}
private static boolean isWindows(){ //erkennt WINDOWS
return System.getProperty("os.name").toLowerCase().indexOf("win")>=0;}
public void parsePathname(String s) {
if (s.trim().equals("")) {
pathname = s;
filename = s;
}
else {
pathname = s.trim();
filename = s.trim();
}
//---------------------
// slashanalyse
//---------------------
String korrekt1=new String(); //erzeugt einen neuen String in den später etwas geschrieben wird
//---------------------
//WINDOWS-Pfad
//---------------------
if(isWindows()==true){
//Variablen
int slash,länge;
char sepchar= java.io.File.separatorChar;
korrekt1=s.replaceAll("\\\\+", "\\\\");// backslash durch sepchar für plattformunabhängigkeit
slash= korrekt1.lastIndexOf(sepchar)+1;// ermittelt index von letzen slash
System.out.println("slash:"+slash);
länge= korrekt1.length();
System.out.println("länge:"+länge);
if(slash==länge)
filename = "";
pathname =korrekt1;
}
//---------------------
//LINUX-Pfad
//---------------------
else{
int slash2,länge2,doppelpunkt;
char sepchar2= java.io.File.separatorChar;
korrekt1=s.replace('/', '\\'); //wandelt / in \\ um
//System.out.println("korrekt:"+korrekt1);
korrekt1=korrekt1.replaceAll("\\\\+", "\\\\"); // macht aus mehreren einen String
slash2= korrekt1.lastIndexOf('\\')+1; // ermittelt index von letzen slash +1 wegen start=0
//System.out.println("slash:"+slash2);
länge2= korrekt1.length();
//System.out.println("länge:"+länge2);
korrekt1 =korrekt1.replace('\\', '/');
if(slash2==länge2)
filename = "";
doppelpunkt=korrekt1.lastIndexOf(":"); //ermittelt den doppelpunkt
if(doppelpunkt!=-1){
korrekt1=korrekt1.replace(":",""); //löscht den doppelpunkt
korrekt1="/"+korrekt1; // fügt vor das "d" den slash ein
}
pathname =korrekt1; // weist dem pfadnamen zu
}
//--------------------------
// ENDE der SLASH - analyse
//--------------------------
//---------------------
// getparsepathname
//---------------------
//Variable
int laenge;
int wert=0;
char sepchar1 =java.io.File.separatorChar;
laenge= pathname.length(); //ermittelt Länge des strings
wert = pathname.lastIndexOf(sepchar1); //ermittelt letzten slash
wert+=1;
//string splitten
filename=pathname.substring(wert, laenge);// von letztem slash bis ende string = Filename
pathname=pathname.substring(0, wert); // von index 0 bis letzten slash = Pathname
}
public void parseFilename(String s){
String string_1= getFilename(); // ruf methode getfilname auf diese gibt den filename zurückund weist ihn string_1 zu
//-----------------------
//gettitel
//-----------------------
int strich,punkt,strichleer;
int laenge;
laenge=string_1.length(); // ermittelt anfang von stringlänge
strich= string_1.lastIndexOf('-');// ermittelt anfang von strich
punkt=string_1.lastIndexOf('.'); // ermittelt anfang von punkt
string_1= string_1.trim();
if(strich==-1){ // Fall KEIN STRICH
if(punkt==0){ //1.Fall ".mp3" kein Titel kein Autor ohne strich
titelstring="";
//System.out.println("");// gibt leeren string zurück
}
else{ //2.Fall kein Autor aber Titel ohne Strich
titelstring= string_1.substring(0, punkt-1);
}
}
else { // Fall MIT STRICH
if (strich==0){ //3.Fall "-"
titelstring="-";
//System.out.println("Titel:"+titelstring);
}
else{
titelstring= string_1.trim();
strichleer=string_1.lastIndexOf('-');
if (strichleer==0){ //4.Fall ' - ' Strich mit leer
titelstring ="";
//System.out.println("leer");
}
else{
titelstring= string_1.substring(strich+1, punkt-1);
titelstring= titelstring.trim();
//System.out.println("Titel:"+titelstring);
}
}
}
//-----------------------
//getautor
//-----------------------
String autor= getFilename(); //autor ruft methode auf und erhält den filename
//Variablen
int strich1,strichleer1;
autorstring=autor; //weist den string autorstring zu
strich1= autorstring.lastIndexOf("-");// ermittelt anfang von strich
strichleer1=autorstring.lastIndexOf(" - ");// ermittelt den string
// Fall KEIN STRICH
if(strich1==-1){
autorstring="";
}
else { // Fall MIT STRICH
if (strich1==0){
autorstring=""; //Fall mit nur einem Strich
}
if (strichleer1==0){
autorstring="";
}
if(strichleer1 !=0 && strichleer1 !=-1){
autorstring=autorstring.trim();
strichleer1=autorstring.lastIndexOf(" - ");// ermittelt den string
autorstring=autorstring.substring(0, strichleer1);//splittet den string von anfang bis " - "
autorstring=autorstring.trim();
}
}
//System.out.println("Autor:"+autorstring);
//System.out.println("strich:"+strich);
//System.out.println("strichlee:"+strichleer);
//System.out.println("autoranfang:"+autor);
}
public String getPathname() {return pathname;}
public String getFilename() {return filename;}
public String getAutor() {return autorstring;}
public String getTitel() {return titelstring;}
public String toString(){
String newstring = null;
if(autorstring.isEmpty()){
newstring = titelstring;
}
else
newstring= autorstring +" - "+titelstring;
return newstring;
}
}