Skip to content

Commit c00b939

Browse files
'#TDP - IW
Realise Model Added unit-test model
1 parent 9dd06de commit c00b939

File tree

18 files changed

+464
-15
lines changed

18 files changed

+464
-15
lines changed

IndividualWork/Unit_tests/tests_db/test_mark.rb

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#require_relative File.dirname($0) + '/../../model_auto/list_file/auto_list_json.rb'
1+
require_relative File.dirname($0) + '/../../model_auto/list_file/mark/mark_list_json.rb'
22
require_relative File.dirname($0) + '/../../model_auto/datatable/mark_list.rb'
33
require_relative File.dirname($0) + '/../../model_entity/entity_list/Parking_list.rb'
44
require 'test/unit'
@@ -27,17 +27,13 @@ def test_get_elements_count
2727
len = @mark.get_elements_count()
2828
assert_equal(3, len)
2929
end
30-
=begin
3130
def test_after_db_files_json
32-
@mark.strategy = Entity_adapter.new(Auto_list_json.new(),:mark)
33-
data_list_auto = @mark.get_k_n_elements_list(1,2,data_list:nil)
34-
table = data_list_auto.getDataFromTable()
35-
model = table.get_element(0,1)
36-
model_name = table.get_element(1,1)
37-
id_owner = table.get_element(1,4)
38-
assert_equal("model", model)
39-
assert_equal("X6", model_name)
40-
assert_equal(1, id_owner)
31+
@mark.strategy = Entity_adapter.new(Mark_list_json.new(),:mark)
32+
data_list= @mark.get_k_n_elements_list(1,2,data_list:nil)
33+
table = data_list.getDataFromTable()
34+
mark = table.get_element(0,0)
35+
mark_name = table.get_element(1,0)
36+
assert_equal("mark", mark)
37+
assert_equal("BMW", mark_name)
4138
end
42-
=end
4339
end
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
require_relative File.dirname($0) + '/../../model_auto/list_file/model/model_list_json.rb'
2+
require_relative File.dirname($0) + '/../../model_auto/datatable/model_list.rb'
3+
require_relative File.dirname($0) + '/../../model_entity/entity_list/Parking_list.rb'
4+
require 'test/unit'
5+
6+
class TestModel_db < Test::Unit::TestCase
7+
8+
def setup
9+
@model = Parking_list.intialize_DB(:model)
10+
end
11+
12+
def test_initialize
13+
elem = @model.get_element_by_id("X6")
14+
assert_equal("BMW", elem["mark"])
15+
assert_equal("X6", elem["model"])
16+
end
17+
18+
def test_get_k_n
19+
data_list_mark = @model.get_k_n_elements_list(1,3,data_list:nil)
20+
table = data_list_mark.getDataFromTable()
21+
mark_name = table.get_element(0,0)
22+
model = table.get_element(1,0)
23+
assert_equal("model", mark_name)
24+
assert_equal("X6", model)
25+
end
26+
27+
def test_get_elements_count
28+
len = @model.get_elements_count()
29+
assert_equal(3, len)
30+
end
31+
32+
def test_after_db_files_json
33+
@model.strategy = Entity_adapter.new(Model_list_json.new(),:model)
34+
data_list= @model.get_k_n_elements_list(1,2,data_list:nil)
35+
table = data_list.getDataFromTable()
36+
model = table.get_element(0,0)
37+
name = table.get_element(1,0)
38+
assert_equal("model", model)
39+
assert_equal("X6", name)
40+
end
41+
42+
end

IndividualWork/main.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
load './model_person/list_file/owner_list.rb'
77
load './model_person/list_file/guard_list.rb'
88
load './model_auto/datatable/auto_list.rb'
9-
9+
load './model_auto/datatable/mark_list.rb'
10+
load './model_auto/datatable/model_list.rb'
1011
#--------------------Controller-----------
1112
load './controller/controller.rb'
1213
load './controller/controller_insert.rb'
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
require_relative File.dirname($0) + './model.rb'
2+
require_relative '../../model_entity/entity_DB/entity_list_DB.rb'
3+
require 'date'
4+
5+
class Model_list_DB < Entities_list_DB
6+
7+
def initialize()
8+
super()
9+
end
10+
11+
def get_element_by_id(id)
12+
model = @dbcon.crud_by_db("Select * FROM Model WHERE model = '#{id}'").to_a
13+
model[0]
14+
end
15+
16+
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil)
17+
offset = (k - 1) * n
18+
limit = n
19+
20+
list_model = []
21+
@dbcon.crud_by_db("Select * FROM Model LIMIT #{limit} OFFSET #{offset};").to_a.each do |elem|
22+
model = Model.new(model:elem["model"],mark:elem["mark"])
23+
list_model.push(model)
24+
end
25+
26+
if(data_list == nil) then
27+
return Data_list_model.new(list_model)
28+
else
29+
return data_list.list_entities = list_model
30+
end
31+
end
32+
33+
def push_element(element)
34+
model = create_model(element:element,id:0)
35+
@dbcon.crud_by_db("INSERT INTO Model(model,mark)
36+
VALUES
37+
('#{model.model},#{model.mark}');")
38+
end
39+
40+
def replace_element_by_id(id,element)
41+
model = create_model(element:element,id:id)
42+
@dbcon.crud_by_db("UPDATE Model SET model = '#{model.model}' ,mark = '#{model.mark}' WHERE model = #{model.model};")
43+
end
44+
45+
def delete_element_by_id(id)
46+
@dbcon.crud_by_db("Delete from Model WHERE model = #{id}")
47+
end
48+
49+
def get_elements_count()
50+
@dbcon.crud_by_db("Select count(*) FROM Model").to_a[0]['count(*)']
51+
end
52+
53+
private
54+
def create_model(element:,id:nil)
55+
Model.new(model:element["model"],mark:element["mark"])
56+
end
57+
58+
end
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
require_relative '../../model_entity/Datatable/data_list.rb'
2+
3+
class Data_list_model < Data_list
4+
5+
attr_accessor :observer #observer model
6+
7+
def notify(whole_entities_count)
8+
self.observer.set_table_params(get_names(),whole_entities_count)
9+
self.observer.set_table_data(self.get_data())
10+
end
11+
12+
private
13+
def get_names()
14+
["model","mark"]
15+
end
16+
17+
def get_data()
18+
matrix = []
19+
@list_entities.each do |elem|
20+
matrix.push([elem.model,elem.mark])
21+
end
22+
matrix
23+
end
24+
25+
end

IndividualWork/model_auto/datatable/mark_list.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def sort_by_field(data_list)
3939
end
4040

4141
def push_element(element)
42-
mark = create_mark(element:element,id:0)
42+
mark = create_mark(element:element,id:element["mark"])
4343
super(mark)
4444
end
4545

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
require_relative File.dirname($0) + '/data_list_model.rb'
2+
require_relative '../../model_entity/Datatable/entities_list.rb'
3+
4+
class Model_list < Entities_list
5+
6+
def initialize(format_file)
7+
super(format_file)
8+
end
9+
10+
def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil,filter_mail:nil)
11+
self.list_entities = read_from_file(nil)
12+
list = []
13+
index_elem = 0
14+
index_list = 0
15+
self.list_entities.each do |elem|
16+
if(index_elem == n && index_list < k) then
17+
index_list = index_list + 1
18+
index_elem = 0
19+
end
20+
if(index_list == k - 1 && index_elem <= n) then
21+
list.push(elem)
22+
if(index_elem == n)
23+
break
24+
end
25+
end
26+
index_elem = index_elem + 1
27+
end
28+
29+
30+
if(data_list == nil) then
31+
return Data_list_model.new(list)
32+
else
33+
return data_list.list_entities = list
34+
end
35+
end
36+
37+
def sort_by_field(data_list)
38+
data_list.list_entities.sort! { |a,b| a.mark <=> b.mark}
39+
end
40+
41+
def push_element(element)
42+
model = create_model(element:element,id:element["model"])
43+
super(model)
44+
end
45+
46+
def replace_element_by_id(id,element)
47+
model = create_model(element:element,id:id)
48+
super(id,model)
49+
end
50+
51+
private
52+
def create_model(element:,id:nil)
53+
Model.new(model:id,mark:element["mark"])
54+
end
55+
56+
57+
end

IndividualWork/model_auto/list_file/auto_list_txt.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def read_from_file(addressFile)
2323
def write_to_file(addressFile,nameFile,autos)
2424
file = File.new("#{addressFile}/#{nameFile}","w:UTF-8")
2525
autos.each do |i|
26-
file.print("i.id,#{i.get_info()}\n")
26+
file.print("#{i.id},#{i.get_info()}\n")
2727
end
2828
file.close
2929
end
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
require_relative '../../../model_entity/list_file/entities_list_from_file.rb'
2+
3+
require 'json'
4+
5+
6+
class Mark_list_json < Entities_list_from_file
7+
8+
#--------------------Test dev - Labs ------------------------
9+
attr_accessor :addressFile
10+
def initialize()
11+
self.addressFile = "testfile/testfile_auto/mark/test.json"
12+
end
13+
#----------------------------------------------------
14+
15+
def read_from_file(addressFile)
16+
addressFile = File.dirname($0) + "/../../#{self.addressFile}" if addressFile==nil
17+
raise "Address file don't correct, check this." if(!File.exist?(addressFile))
18+
marks = Array.new()
19+
file = File.read addressFile
20+
mark_hash = JSON.parse(file)
21+
mark_hash.each do |key, mark|
22+
line = ""
23+
mark.each do |key_fields, elem|
24+
line+= elem.to_s + "," if(elem!=nil)
25+
end
26+
line.delete_suffix! ","
27+
marks.push(Mark.initialization(line)) if(line!="")
28+
end
29+
marks
30+
end
31+
32+
def write_to_file(addressFile,nameFile,mark)
33+
file = File.new("#{File.dirname($0)}#{addressFile}/#{nameFile}.json","w:UTF-8")
34+
mark_hash = {}
35+
num = 1
36+
mark.each do |i|
37+
mark_hash["mark#{num}"] = {
38+
"mark" => i.mark
39+
}
40+
num+=1
41+
end
42+
file.write(JSON.pretty_generate(mark_hash))
43+
file.close
44+
end
45+
46+
end
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
require_relative '../../../model_entity/list_file/entities_list_from_file.rb'
2+
3+
class Mark_list_txt < Entities_list_from_file
4+
5+
#--------------------Test dev - marks ------------------------
6+
attr_accessor :addressFile
7+
def initialize()
8+
self.addressFile = "testfile/testfile_auto/mark/test.txt"
9+
end
10+
#----------------------------------------------------
11+
def read_from_file(addressFile)
12+
addressFile = File.dirname($0) + "/../../#{self.addressFile}" if addressFile==nil
13+
raise "Address file don't correct, check this." if(!File.exist?(addressFile))
14+
marks = Array.new()
15+
File.open(addressFile,'r') do |file|
16+
file.each_line do |line|
17+
marks.push(Mark.initialization(line.delete "\n")) if(line!="")
18+
end
19+
end
20+
marks
21+
end
22+
23+
def write_to_file(addressFile,nameFile,marks)
24+
file = File.new("#{addressFile}/#{nameFile}","w:UTF-8")
25+
marks.each do |i|
26+
file.print("#{i.mark}\n")
27+
end
28+
file.close
29+
end
30+
31+
end

0 commit comments

Comments
 (0)