Skip to content

Commit de393b6

Browse files
'#TDP - IW
Added class mark_DB Added data_list_mark Added mark_list Added unit test for this class
1 parent 455ea9f commit de393b6

File tree

13 files changed

+213
-3
lines changed

13 files changed

+213
-3
lines changed

IndividualWork/Unit_tests/tests_db/test_auto.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ def test_get_k_n
2121
table = data_list_person_short.getDataFromTable()
2222
model = table.get_element(0,1)
2323
highlander = table.get_element(1,1)
24+
surname = table.get_element(1,0)
2425
color = table.get_element(1,2)
2526
assert_equal("model", model)
27+
assert_equal("Яковлев", surname)
2628
assert_equal("Higlander", highlander)
2729
assert_equal("black", color)
2830
end
@@ -38,7 +40,7 @@ def test_after_db_files_json
3840
table = data_list_auto.getDataFromTable()
3941
model = table.get_element(0,1)
4042
model_name = table.get_element(1,1)
41-
id_owner = table.get_element(1,0)
43+
id_owner = table.get_element(1,4)
4244
assert_equal("model", model)
4345
assert_equal("X6", model_name)
4446
assert_equal(1, id_owner)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#require_relative File.dirname($0) + '/../../model_auto/list_file/auto_list_json.rb'
2+
require_relative File.dirname($0) + '/../../model_auto/datatable/mark_list.rb'
3+
require_relative File.dirname($0) + '/../../model_entity/entity_list/Parking_list.rb'
4+
require 'test/unit'
5+
6+
class TestMark_db < Test::Unit::TestCase
7+
8+
def setup
9+
@mark = Parking_list.intialize_DB(:mark)
10+
end
11+
12+
def test_initialize
13+
elem = @mark.get_element_by_id("BMW")
14+
assert_equal("BMW", elem["mark"])
15+
end
16+
17+
def test_get_k_n
18+
data_list_mark = @mark.get_k_n_elements_list(1,3,data_list:nil)
19+
table = data_list_mark.getDataFromTable()
20+
mark_name = table.get_element(0,0)
21+
mark = table.get_element(1,0)
22+
assert_equal("mark", mark_name)
23+
assert_equal("BMW", mark)
24+
end
25+
26+
def test_get_elements_count
27+
len = @mark.get_elements_count()
28+
assert_equal(3, len)
29+
end
30+
=begin
31+
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)
41+
end
42+
=end
43+
end

IndividualWork/log.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ I, [2023-05-16T10:22:05.966642 #6634] INFO -- : Deleting entity with ID {[18]
2727
I, [2023-05-16T12:09:58.474598 #13289] INFO -- : Deleting entity with ID {[4]
2828
I, [2023-05-16T22:54:24.218356 #20469] INFO -- : Deleting entity with ID {[6]
2929
I, [2023-05-16T23:28:07.838345 #23257] INFO -- : Deleting entity with ID {[7]
30+
I, [2023-05-17T14:38:42.241666 #2073] INFO -- : Deleting entity with ID {[21]

IndividualWork/logger/log_create.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,4 @@ I, [2023-05-16T12:21:55.430149 #14154] INFO -- : Creating element with params {
238238
I, [2023-05-16T22:53:43.785976 #20469] INFO -- : Creating element with params {"name"=>"Kyuo", "surname"=>"Lopi", "lastname"=>"", "phone"=>"+7985625325", "mail"=>"pup@gmail.com"}
239239
I, [2023-05-16T22:54:19.338994 #20469] INFO -- : Creating element with params {"name"=>"Guarding", "surname"=>"Surnaming", "lastname"=>"", "phone"=>"+78569586525", "mail"=>nil, "exp_year"=>15}
240240
I, [2023-05-16T23:27:57.053921 #23257] INFO -- : Creating element with params {"name"=>"Gardin", "surname"=>"Sur", "lastname"=>"Lasd", "phone"=>"+7956856952", "mail"=>nil, "exp_year"=>15}
241+
I, [2023-05-17T14:38:33.145637 #2073] INFO -- : Creating element with params {"name"=>"Name", "surname"=>"Surname", "lastname"=>"Las", "phone"=>"89562563225", "mail"=>nil}

IndividualWork/main.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
load './model_entity/entity_list/Parking_list.rb'
66
load './model_person/list_file/owner_list.rb'
77
load './model_person/list_file/guard_list.rb'
8+
load './model_auto/datatable/auto_list.rb'
89

10+
#--------------------Controller-----------
911
load './controller/controller.rb'
1012
load './controller/controller_insert.rb'
1113
load './controller/controller_update.rb'

IndividualWork/model_auto/auto_DB/auto_list_DB.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ def get_k_n_elements_list(k,n,data_list:nil,filter_initials:nil,filter_phone:nil
1919

2020
list_auto = []
2121
@dbcon.crud_by_db("Select * FROM Auto LIMIT #{limit} OFFSET #{offset};").to_a.each do |elem|
22+
surname_owner = @dbcon.crud_by_db("Select surname FROM Owner WHERE id = #{elem["owner_id"]};").to_a
2223
auto = Auto.new(
2324
id:elem["id"],
2425
id_owner:Integer(elem["owner_id"]),
26+
surname_owner: surname_owner[0]["surname"],
2527
model:elem["model"],
2628
color:elem["color"])
2729
list_auto.push(auto)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
require_relative File.dirname($0) + './mark.rb'
2+
require_relative '../../model_entity/entity_DB/entity_list_DB.rb'
3+
require 'date'
4+
5+
class Mark_list_DB < Entities_list_DB
6+
7+
def initialize()
8+
super()
9+
end
10+
11+
def get_element_by_id(id)
12+
mark = @dbcon.crud_by_db("Select * FROM Mark WHERE mark = '#{id}'").to_a
13+
mark[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_mark = []
21+
@dbcon.crud_by_db("Select * FROM Mark LIMIT #{limit} OFFSET #{offset};").to_a.each do |elem|
22+
mark = Mark.new(mark:elem["mark"])
23+
list_mark.push(mark)
24+
end
25+
26+
if(data_list == nil) then
27+
return Data_list_mark.new(list_mark)
28+
else
29+
return data_list.list_entities = list_mark
30+
end
31+
end
32+
33+
def push_element(element)
34+
mark = create_mark(element:element,id:0)
35+
@dbcon.crud_by_db("INSERT INTO Mark(mark)
36+
VALUES
37+
('#{mark.mark}');")
38+
end
39+
40+
def replace_element_by_id(id,element)
41+
mark = create_mark(element:element,id:id)
42+
@dbcon.crud_by_db("UPDATE Mark SET mark = '#{mark.mark}' WHERE mark = #{mark.mark};")
43+
end
44+
45+
def delete_element_by_id(id)
46+
@dbcon.crud_by_db("Delete from Mark WHERE mark = #{id}")
47+
end
48+
49+
def get_elements_count()
50+
@dbcon.crud_by_db("Select count(*) FROM Mark").to_a[0]['count(*)']
51+
end
52+
53+
private
54+
def create_mark(element:,id:nil)
55+
Mark.new(mark:element["mark"])
56+
end
57+
58+
end

IndividualWork/model_auto/datatable/auto_list.rb

Lines changed: 4 additions & 2 deletions
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-
auto = create_auto(element:element)
42+
auto = create_auto(element:element,id:0)
4343
super(auto)
4444
end
4545

@@ -50,7 +50,9 @@ def replace_element_by_id(id,element)
5050

5151
private
5252
def create_auto(element:,id:nil)
53-
Auto.new(id:id,id_owner:element["id_owner"],
53+
Auto.new(id:id,
54+
id_owner:element["id_owner"],
55+
surname_owner: element["surname_owner"],
5456
model:element["model"],
5557
color:element["color"])
5658
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_mark < 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+
["mark"]
15+
end
16+
17+
def get_data()
18+
matrix = []
19+
@list_entities.each do |elem|
20+
matrix.push([elem.mark])
21+
end
22+
matrix
23+
end
24+
25+
end
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_mark.rb'
2+
require_relative '../../model_entity/Datatable/entities_list.rb'
3+
4+
class Mark_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_mark.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+
mark = create_mark(element:element,id:0)
43+
super(mark)
44+
end
45+
46+
def replace_element_by_id(id,element)
47+
mark = create_mark(element:element,id:id)
48+
super(id,mark)
49+
end
50+
51+
private
52+
def create_mark(element:,id:nil)
53+
Mark.new(mark:id)
54+
end
55+
56+
57+
end

0 commit comments

Comments
 (0)