1+ // SPDX-License-Identifier: Apache-2.0
2+
3+ package com .digitalpebble .spruce .modules .ccf ;
4+
5+ import org .apache .spark .sql .Row ;
6+ import org .apache .spark .sql .catalyst .expressions .GenericRowWithSchema ;
7+ import org .apache .spark .sql .types .StructType ;
8+ import org .junit .jupiter .api .Test ;
9+
10+ import static org .junit .jupiter .api .Assertions .*;
11+
12+ class StorageTest {
13+
14+ private final Storage storage = new Storage ();
15+
16+ @ Test
17+ void processCreateVolumeSSD () {
18+ String ddl = "line_item_operation STRING, line_item_usage_amount DOUBLE, energy_usage_kwh DOUBLE" ;
19+ StructType schema = StructType .fromDDL (ddl );
20+ Object [] values = new Object [] {"CreateVolume-Gp3" , 10d , null };
21+ Row row = new GenericRowWithSchema (values , schema );
22+ Row result = storage .process (row );
23+ double expected = 10d * storage .ssd_gb_coefficient ;
24+ assertEquals (expected , result .getDouble (2 ));
25+ }
26+
27+ @ Test
28+ void processCreateVolumeSSD2 () {
29+ String ddl = "line_item_operation STRING, line_item_usage_amount DOUBLE, energy_usage_kwh DOUBLE" ;
30+ StructType schema = StructType .fromDDL (ddl );
31+ Object [] values = new Object [] {"CreateVolume-Gp2" , 10d , null };
32+ Row row = new GenericRowWithSchema (values , schema );
33+ Row result = storage .process (row );
34+ double expected = 10d * storage .ssd_gb_coefficient ;
35+ assertEquals (expected , result .getDouble (2 ));
36+ }
37+
38+ @ Test
39+ void processCreateVolumeHDD () {
40+ String ddl = "line_item_operation STRING, line_item_usage_amount DOUBLE, energy_usage_kwh DOUBLE" ;
41+ StructType schema = StructType .fromDDL (ddl );
42+ Object [] values = new Object [] {"CreateVolume" , 10d , null };
43+ Row row = new GenericRowWithSchema (values , schema );
44+ Row result = storage .process (row );
45+ double expected = 10d * storage .hdd_gb_coefficient ;
46+ assertEquals (expected , result .getDouble (2 ));
47+ }
48+ }
0 commit comments