1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
use crate::dht::bbdht::dynamodb::api::table::exist::until_table_not_exists;
use crate::dht::bbdht::dynamodb::client::Client;
use crate::dht::bbdht::error::BbDhtResult;
use crate::trace::tracer;
use crate::trace::LogContext;
use rusoto_dynamodb::DeleteTableInput;
use rusoto_dynamodb::DynamoDb;
pub fn delete_table(
    log_context: &LogContext,
    client: &Client,
    table_name: &str,
) -> BbDhtResult<()> {
    tracer(&log_context, "delete_table");
    let delete_table_input = DeleteTableInput {
        table_name: table_name.to_string(),
    };
    client.delete_table(delete_table_input).sync()?;
    until_table_not_exists(log_context, client, table_name);
    Ok(())
}
#[cfg(test)]
pub mod test {
    use crate::dht::bbdht::dynamodb::api::table::create::create_table;
    use crate::dht::bbdht::dynamodb::api::table::delete::delete_table;
    use crate::dht::bbdht::dynamodb::api::table::exist::table_exists;
    use crate::dht::bbdht::dynamodb::api::table::fixture::table_name_fresh;
    use crate::dht::bbdht::dynamodb::client::local::local_client;
    use crate::dht::bbdht::dynamodb::schema::fixture::attribute_definitions_a;
    use crate::dht::bbdht::dynamodb::schema::fixture::key_schema_a;
    use crate::trace::tracer;
    #[test]
    fn delete_table_test() {
        let log_context = "delete_table_text";
        tracer(&log_context, "fixtures");
        let local_client = local_client();
        let table_name = table_name_fresh();
        let key_schema = key_schema_a();
        let attribute_definitions = attribute_definitions_a();
        
        assert!(!table_exists(&log_context, &local_client, &table_name)
            .expect("could not check that table exists"));
        
        assert!(create_table(
            &log_context,
            &local_client,
            &table_name,
            &key_schema,
            &attribute_definitions,
        )
        .is_ok());
        
        assert!(table_exists(&log_context, &local_client, &table_name)
            .expect("could not check that table exists"));
        
        assert!(delete_table(&log_context, &local_client, &table_name).is_ok());
        
        assert!(!table_exists(&log_context, &local_client, &table_name)
            .expect("could not check that the table exists"));
    }
}