otarza / serv-cst

CST web III porject
6 stars 0 forks source link

მოთხოვნის სტრიქონის(Query String) პარამეტრებად წაკითხვა #9

Closed ioseb closed 11 years ago

ioseb commented 11 years ago

აუცილებელია მოთხოვნის სტრიქონის ცალკეულ პარამეტრებად წაკითხვა(იხ. სპეციფიკაცია: http://tools.ietf.org/html/rfc3986#section-3.4).

ნიმუში:

param1=value1&param2=val%20ue&pa%20ram3=value3

ზემოთ ნაჩვენები ნიმუშიდან უნდა მივიღოთ ე.წ. Map<String, String> ობიექტი სადაც key არის პარამეტრის სახელი ხოლო value პარამეტრის მნიშვნელობა. შესაბამისად:

String param1 = map.get("param2");
// param1 ცვლადის მნიშვნელობა უნდა იყოს "val ue1"

მიაქციეთ ყურადღება რომ ენკოდირებული ჰარის სიმბოლო %20 დეკოდირებულია როგორც " ".

otarza commented 11 years ago

სენსეი @ioseb fix-ებს ვამუღამებდი კომიტ მესიჯში და შემთხვევით მიმეხურა მარა გავხსენი თავიდან.

otarza commented 11 years ago

სენსეი @ioseb ორი სიტყვით მითხარით ვარგა რამედ? 71e55213af2a0936008bc4ba9719f0517d751fd8

ioseb commented 11 years ago

@reflooding ზოგადად ძალიან კარგია, თუმცა შენიშვნები დაგიწერე კოდში. ორი საკითხი:

გაითვალისწინე რომ მაგ პარსერის გამოყენება ასევე დაგვჭირდება POST - ით გადმოგზავნილი ფორმის მონაცემებისთვის. შესაბამისად სტაბილური უნდა იყოს.

otarza commented 11 years ago

ყველაფერი გავითვალისწინე და გავაკეთე.

ერთი ტესტიც დავამატე, დღეს კიდევ რამოდენიმე ტესტს დავუწერ.

ioseb commented 11 years ago

@reflooding

კოდის კომენტარში დაგიწერე და აქაც გავიმეორებ. ერთ ტესტ მეთოდში უნდა იყოს ერთი ლოგიკური ერთეული გატესტილი და არა რამდენიმე. ტესტები გააკეთე ასე:

@Test
public void testSimpleQueryStringParsing() {

}

@Test
public void testMalformedQueryStringParsing() {

}

@Test
public void testUTF8QueryStringParsing() {

}

ტესტების არსებობა არა მხოლოდ კოდის გამართულ მუშაობას ამოწმებს, არამედი გარკვეული დოკუმენტაციის როლი გააჩნია. თუ სიტყვაზე რომელიმე ტესტი არ იმუშავებს გარემო ზუსტად დაგიწერს რომლემა ტესტმა და რატომ არ იმუშავა. ყველა ტესტი უნდა იყოს ერთმანეთისგან იზოლირებული.

დამატებით ამ კომენტარსაც შეხედე https://github.com/reflooding/serv-cst/issues/2#issuecomment-14220756

otarza commented 11 years ago

აჰა გასაგებია, პირველი იუნიტ ტესტი დავწერე გუშინ და ძალიან მომეწონა :)

გავაგრძელებ მაგ მიდგომით.

ioseb commented 11 years ago

@reflooding დაასრულე დროულად.

otarza commented 11 years ago

@ioseb მგონია რომ მოვრჩი, რაც სპეციფიკაციაში წავიკითხე და სხვა დანარჩენი მითითებების გათვალისწინებით წესით ისაა რაც უნდა იყოს.

თუ ასეა მგონი შეგვიძლია დავხუროთ.